CVE-2026-44088 Overview
CVE-2026-44088 affects SzafirHost, a component associated with the Polish electronic signature ecosystem. The vulnerability stems from an inconsistency between JAR signature verification and class loading. SzafirHost verifies downloaded JAR files using JarInputStream, which reads from the beginning of the file. It then loads classes using JarFile and URLClassLoader, which read the Central Directory from the end of the file. Attackers can exploit this mismatch by appending a malicious ZIP archive to a legitimately signed JAR. The verification step trusts the signed content, while the class loader executes the attacker-controlled classes. The vendor fixed the issue in version 1.2.1. The flaw is categorized under CWE-434: Unrestricted Upload of File with Dangerous Type.
Critical Impact
Successful exploitation allows remote code execution by smuggling malicious classes past signature verification, compromising confidentiality, integrity, and availability of the host system.
Affected Products
- SzafirHost versions prior to 1.2.1
- Deployments integrating SzafirHost for JAR-based signed component delivery
- Systems relying on SzafirHost for electronic signature operations via elektronicznypodpis.pl
Discovery Timeline
- 2026-05-15 - CVE-2026-44088 published to NVD
- 2026-05-19 - Last updated in NVD database
Technical Details for CVE-2026-44088
Vulnerability Analysis
The vulnerability arises from divergent JAR parsing behavior between two Java standard library classes. JarInputStream processes archive entries sequentially from the start of the stream and validates signatures against the local file headers it encounters. JarFile and URLClassLoader parse the Central Directory record located at the end of the archive to enumerate and load classes. An attacker can construct a hybrid file containing a legitimate signed JAR at the beginning and an unsigned malicious ZIP appended at the end. When SzafirHost validates the file with JarInputStream, the original signed entries pass verification. When the JVM later loads classes via URLClassLoader, it follows the Central Directory pointers to the malicious entries. This parser confusion bypasses the cryptographic protection that JAR signing is meant to provide. The result is execution of attacker-controlled bytecode within the SzafirHost process.
Root Cause
The root cause is inconsistent file format parsing between signature verification and class loading. JAR files are ZIP archives, and the ZIP specification allows multiple records to coexist when the Central Directory takes precedence. SzafirHost validates one view of the file but executes a different view, breaking the trust boundary.
Attack Vector
The attack vector is network-based and requires user interaction to trigger the download or invocation of the crafted JAR. An attacker hosts a malicious hybrid JAR/ZIP file and induces SzafirHost to retrieve and load it. Because the file carries a valid signature from a legitimate signer, the host application accepts it. The malicious classes then execute in the user context running SzafirHost.
No verified public exploit code is available. See the CERT.pl advisory for CVE-2026-44088 for technical details.
Detection Methods for CVE-2026-44088
Indicators of Compromise
- Downloaded JAR files where the size or entry count differs between JarInputStream enumeration and JarFile Central Directory listing.
- Unexpected class names or packages loaded by SzafirHost that are not present in the originally signed manifest.
- Outbound connections from SzafirHost to non-vendor domains preceding anomalous child process creation.
Detection Strategies
- Inspect JAR files retrieved by SzafirHost for trailing data after the Central Directory End record, which indicates appended content.
- Compare entries listed in META-INF/MANIFEST.MF against entries returned by JarFile.entries() to identify entries lacking signature coverage.
- Monitor SzafirHost processes for unexpected reflection, network, or filesystem activity inconsistent with normal signing workflows.
Monitoring Recommendations
- Enable endpoint logging of process creation and child process activity originating from SzafirHost binaries.
- Capture network telemetry of JAR downloads, including source URLs and file hashes, for retrospective hunting.
- Alert on JAR files whose SHA-256 hash does not match a known allowlist of vendor-published artifacts.
How to Mitigate CVE-2026-44088
Immediate Actions Required
- Upgrade SzafirHost to version 1.2.1 or later on all endpoints that use the component.
- Inventory systems where SzafirHost is installed, including workstations used for electronic signature operations.
- Restrict outbound network access from SzafirHost to vendor-controlled distribution endpoints only.
Patch Information
The vendor addressed the vulnerability in SzafirHost version 1.2.1. The fix aligns the parsing behavior between signature verification and class loading so that appended ZIP content cannot bypass signature checks. Refer to the CERT.pl advisory for vendor coordination details.
Workarounds
- Block execution of SzafirHost versions earlier than 1.2.1 via application control policies until patching completes.
- Limit user permissions so SzafirHost cannot write to or execute from privileged directories.
- Validate downloaded JAR artifacts against vendor-published hashes before allowing execution.
# Verify installed SzafirHost version on Windows
reg query "HKLM\Software\Krajowa Izba Rozliczeniowa S.A.\SzafirHost" /v Version
# Verify JAR file integrity against a known hash
certutil -hashfile downloaded.jar SHA256
Disclaimer: This content was generated using AI. While we strive for accuracy, please verify critical information with official sources.

