CVE-2026-74885 in openssl_encryptinfo

Summary

by MITRE • 08/17/2026

openssl_encrypt versions before 1.4.0 contain a logging bug in restore_hidden_modules() that logs module counts after clearing, always showing zero restored modules and corrupting audit trails. Additionally, a race condition exists between module hiding and import hook installation where another thread could re-import blocked modules in multi-threaded environments.

Be aware that VulDB is the high quality source for vulnerability data.

Analysis

by VulDB Data Team • 08/17/2026

The vulnerability identified in openssl_encrypt versions prior to 1.4.0 presents two distinct technical flaws that compromise both the integrity of audit logs and the security boundary enforcement within multi-threaded Python applications. The first issue is a logging defect located specifically within the restore_hidden_modules function, which is responsible for reinstating modules that were previously hidden or blocked by import hooks. When this function executes after clearing module caches, it incorrectly reports zero restored modules regardless of whether any actual restoration occurred. This discrepancy arises because the internal state tracking mechanism fails to accurately reflect the number of modules successfully re-added to sys.modules following a clear operation. Consequently, security monitoring systems and audit trails that rely on these log entries receive false negative data, creating blind spots where unauthorized module imports or modifications may go undetected due to misleading informational messages rather than actual absence of activity.

The second flaw involves a critical race condition inherent in the interaction between module hiding mechanisms and import hook installation processes. In multi-threaded environments, there exists a temporal window during which modules are being hidden from the namespace but before the corresponding import hooks are fully installed to prevent re-importation. During this narrow interval, concurrent threads can bypass the intended restrictions by successfully importing blocked or sensitive modules that were supposed to be inaccessible. This race condition undermines the fundamental purpose of module hiding, allowing potentially malicious code execution paths to remain open despite apparent security controls being in place. The lack of atomicity between state modification and hook registration creates an exploitable gap where thread scheduling decisions can determine whether a restriction is effectively enforced or circumvented entirely.

From a classification perspective, this vulnerability aligns with CWE-754 improper check for unusual or exceptional conditions regarding the logging error, as the system fails to validate that its internal counters accurately represent reality before emitting logs. The race condition component maps directly to CWE-362 concurrent execution using shared resource with insufficient synchronization, highlighting a failure in thread safety protocols within the module management subsystem. Furthermore, these issues contribute to ATT&CK technique T1078 valid accounts and potentially T1553 subvert trust controls if an attacker leverages the race condition to load unauthorized libraries that bypass standard import restrictions. The combination of false logging data and execution flow manipulation significantly degrades the overall security posture by eroding both detection capabilities and preventive control efficacy.

The operational impact of these flaws is substantial for applications relying on strict module isolation policies, such as sandboxed environments or plugins systems with high-security requirements. Security teams may fail to detect unauthorized library loads because the audit logs consistently show zero activity even when violations occur via the race condition path. This leads to a false sense of security where compliance reports appear clean while actual policy violations are silently occurring in the background. Additionally, the corruption of audit trails complicates forensic investigations and incident response efforts, as analysts cannot trust historical log data to reconstruct events accurately. In worst-case scenarios, this could allow attackers to inject malicious code into running processes by exploiting the window between hiding and hook installation, effectively bypassing application-level security controls designed to restrict dynamic imports.

Mitigation strategies must address both the logging inaccuracy and the synchronization gap immediately upon upgrading to version 1.4.0 or later where these issues are resolved. For environments unable to upgrade promptly, implementing additional thread-safe wrappers around module hiding operations can help mitigate the race condition by ensuring that import hooks are installed atomically with state changes. Developers should also consider adding explicit validation checks in logging routines to verify actual restoration counts against internal states before emitting messages. Enhancing monitoring systems to detect anomalies such as sudden spikes in successful imports despite zero logged restorations may provide an alternative detection layer for the race condition until patches can be applied. Regular audits of import hook configurations and rigorous testing under high-concurrency scenarios are recommended to identify similar synchronization weaknesses in other parts of the application stack.

Responsible

VulnCheck

Reservation

08/17/2026

Disclosure

08/17/2026

Moderation

accepted

CPE

ready

EPSS

0.00122

KEV

no

Activities

very low

Sources

Do you know our Splunk app?

Download it now for free!