Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessGain physical access to provisioning workstation
-
DeliveryCraft or replace pkcs15-init profile configuration file
-
ExploitUser invokes pkcs15-init with malicious profile
-
Executiondo_key_value() executes unchecked memcpy into keybuf
-
PersistStack and heap memory corrupted
-
ImpactProcess crash or limited code execution
Vulnerability Assessment
| Weakness |
CWE
ASVS 5.0
V15 - Secure Coding and Architecture Stack buffer bounds checking
MITRE ATT&CK
1 technique across 1 tactic: Execution The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up. |
| Exploitation Conditions | Physical access to the target system is required (CVSS AV:P). The vulnerability is triggered exclusively during pkcs15-init invocation - the PKCS#15 smart card initialization tool must be actively run by a user (UI:P) against a profile configuration file that the attacker has been able to craft or substitute. The malicious profile file must contain a key-value entry where the value begins with '=' and has a byte length exceeding sizeof(keybuf) in the OpenSC build. Exploitation is further constrained by high attack complexity (AC:H), meaning reliable memory corruption control is not straightforward. Limiting factors include: physical presence requirement, dependency on user action to invoke the tool, attacker's ability to modify or replace the profile file path used, and the non-default nature of running pkcs15-init (it is a provisioning tool, not a routine daemon). Systems that do not perform smart card initialization using pkcs15-init are not affected. |
| Impact | The aggregate risk signal is very low despite the memory-corruption class of vulnerability. CVSS 4.0 scores this at 1.0 with AV:P (physical access required), AC:H (high attack complexity), PR:N (no privileges needed by the attacker), UI:P (user interaction required), and limited impact metrics (VC:L/VI:L/VA:L). No EPSS data was provided in the source intelligence, and this CVE does not appear in the CISA KEV catalog, indicating no confirmed active exploitation. No public proof-of-concept code was identified. The physical access vector is the dominant risk-reduction factor: an attacker must be able to place a crafted profile file in a location where a user subsequently invokes pkcs15-init against it. The high attack complexity further reduces likelihood of reliable exploitation even when access conditions are met. The impact scope is limited to the local process - SC:N/SI:N/SA:N confirms no cross-component scope change. Real-world priority is low for most organizations; only environments where physical access to smart card provisioning workstations is not tightly controlled warrant elevated concern. |
| Exploit ScenarioDerived | An attacker with physical access to a smart card provisioning workstation replaces or supplants a legitimate pkcs15-init profile configuration file with a crafted variant containing a key value entry that begins with '=' and includes a payload exceeding sizeof(keybuf) bytes. When an operator runs pkcs15-init and the malicious profile is parsed, do_key_value() performs an unchecked memcpy into keybuf, overflowing the stack buffer and corrupting adjacent memory, potentially leading to a crash or limited code execution within the pkcs15-init process context. No public proof-of-concept is known at time of analysis, and the high attack complexity rating reflects the difficulty of reliably controlling execution after the overflow. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – May 29, 2026
Stack and heap buffer overruns in OpenSC's pkcs15-init tooling corrupt memory when processing a maliciously crafted PKCS#15 profile configuration file. Affected versions prior to 0.27.0 contain no length validation in the do_key_value() function before a memcpy into the fixed-size keybuf buffer, allowing overflow when a key value entry begins with '=' and exceeds sizeof(keybuf) bytes. Exploitation is severely constrained by a CVSS 4.0 score of 1.0 - physical access, high attack complexity, and user interaction are all required - and no public exploit or CISA KEV listing exists at time of analysis.
RemediationAI
Upgrade OpenSC to version 0.27.0 or later, which incorporates the fix from commit 0358817. The upstream patch is available at https://github.com/OpenSC/OpenSC/commit/0358817ec74aeca654f83e7709c7720b14c5db59. If upgrading immediately is not feasible, restrict write access to profile configuration files used by pkcs15-init so that only trusted administrators can supply or modify them - this eliminates the primary attack vector since exploitation requires delivering a crafted profile file to the target. Additionally, enforce physical access controls on workstations where pkcs15-init is invoked for smart card provisioning, as AV:P requires local physical presence. Auditing existing profile configuration files for anomalous key-value entries longer than expected is a low-cost compensating check while a patch is staged.
Affected VersionsENISA
Affected Packages
Source: OSV (Open Source Vulnerabilities)
Affects your stack
Affects 1 package in euvd
Checking this CVE against your own stacks and servers is part of the Basic plan and up.
Technical ContextAI · show details
OpenSC is an open-source smart card middleware library used for PKCS#11 and PKCS#15 cryptographic operations. The pkcs15-init utility processes profile configuration files to initialize smart card token structures. The vulnerable code path in src/pkcs15init/profile.c within the do_key_value() function reads key-value pairs from these profile files. Prior to the fix in commit 0358817, a key value entry beginning with '=' was passed directly to memcpy into the stack-allocated keybuf without first comparing key_len against sizeof(keybuf). CWE-121 (Stack-based Buffer Overflow) is the root cause class: the unbounded copy overflows keybuf on the stack and can also corrupt adjacent heap allocations depending on allocator layout. The fix introduces an explicit guard - if (key_len > sizeof(keybuf)) { parse_error(...); return 1; } - rejecting oversized values before the copy executes. CPE cpe:2.3:a:opensc:opensc:*:*:*:*:*:*:*:* indicates all OpenSC versions prior to the patch are affected.
Know when Opensc gets its next vulnerability
- Watch products and get an email when something new is published
- Check this CVE against your own stack and servers
- Exploit and PoC references, threat intelligence from 22 sources
No credit card · 7-day full trial
Severity by source
CVSS:4.0/AV:P/AC:H/AT:N/PR:N/UI:P/VC:L/VI:L/VA:L/SC:N/SI:N/SA:N
Primary rating from Vendor (VulnCheck) · only source for this CVE.
CVSS VectorVendor: VulnCheck
Lifecycle Timeline
1DescriptionCVE.org
OpenSC before 0.27.0, fixed in commit 0358817, contains a stack and heap buffer overrun vulnerability in the do_key_value() function in src/pkcs15init/profile.c that allows attackers to corrupt memory by supplying a crafted profile configuration file. During pkcs15-init invocation, a key value entry beginning with '=' followed by more than sizeof(keybuf) characters is copied into keybuf via memcpy without a length check, causing both stack and heap buffer overruns.
Threat Intelligence Overview
How this decision was reached
The engine reads each signal below and applies a fixed list of rules from top to bottom. The first rule that matches sets the recommended action – like a statement, every line is shown.
What every action level means
SSVC AssessmentENISA
Priority Score
Attack Technique
A buffer overflow occurs when a program writes more data to a memory buffer than it was allocated to hold, causing the excess data to spill into adjacent memory regions.
A stack-based buffer overflow occurs when a program writes more data to a buffer located on the stack than it was allocated to hold.
sc_context_create in ctx.c in libopensc in OpenSC 0.19.0 has a memory leak, as demonstrated by a call from eidenv. Rated
Several buffer overflows when handling responses from a Gemsafe V1 Smartcard in gemsafe_get_cert_len in libopensc/pkcs15
Several buffer overflows when handling responses from a TCOS Card in tcos_select_file in libopensc/card-tcos.c in OpenSC
Several buffer overflows when handling responses from a Muscle Card in muscle_list_files in libopensc/card-muscle.c in O
A double free when handling responses from an HSM Card in sc_pkcs15emu_sc_hsm_init in libopensc/pkcs15-sc-hsm.c in OpenS
A double free when handling responses in read_file in tools/egk-tool.c (aka the eGK card tool) in OpenSC before 0.19.0-r
A double free when handling responses from a smartcard in sc_file_set_sec_attr in libopensc/sc.c in OpenSC before 0.19.0
A single byte buffer overflow when handling responses from an esteid Card in sc_pkcs15emu_esteid_init in libopensc/pkcs1
Several buffer overflows when handling responses from a CAC Card in cac_get_serial_nr_from_CUID in libopensc/card-cac.c
Several buffer overflows when handling responses from an ePass 2003 Card in decrypt_response in libopensc/card-epass2003
Several buffer overflows when handling responses from a Cryptoflex card in read_public_key in tools/cryptoflex-tool.c in
A buffer overflow when handling string concatenation in util_acl_to_str in tools/util.c in OpenSC before 0.19.0-rc1 coul
EUVD-2026-33320
GHSA-vxjj-52h8-95w5
NVD
CVE.org
EPSS
Vulnrichment
VulDB
Exploit-DB