Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessGain physical access to target machine
-
DeliveryInsert crafted PIV smart card or USB emulator
-
ExploitSystem invokes PIV card processing via OpenSC
-
Executionpiv_process_history() reads Key History Object ASN.1 response
-
PersistURL field >118 bytes overflows fixed stack buffer
-
ImpactMemory corruption with limited Low-level CIA impact on OpenSC process
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 | Exploitation requires the attacker to be physically present and able to insert a crafted PIV smart card or USB device emulating a smart card into the target machine - remote exploitation is not possible per AV:P. The target must be running a vulnerable OpenSC version (before 0.27.0-rc1) with PIV card support enabled, which is the default for PIV-capable builds. The overflow is triggered specifically during processing of the Key History Object's URL field in the ASN.1 response; PIV cards that do not present a Key History Object, or whose URL field is 118 bytes or fewer, will not trigger the vulnerability. Additionally, the CVSS vector specifies UI:P (passive user interaction), meaning the card must be read and processed by the host system - simply having physical proximity is insufficient without triggering a card read operation. Key limiting factors include: mandatory physical access to the target machine, high attack complexity, the need for a specially crafted card or device, and the requirement that PIV card processing is actively invoked. |
| Impact | The CVSS 4.0 score of 1.0 is the primary quantitative signal and accurately reflects severe real-world constraints: physical access required (AV:P), high attack complexity (AC:H), passive user interaction required (UI:P), and only Low impact across confidentiality, integrity, and availability with no scope change to subsequent components (SC:N/SI:N/SA:N). The vulnerability is not listed in CISA KEV, and no public exploit or POC code has been identified at time of analysis; EPSS data was not provided in the input. Despite being a classic stack buffer overflow - a class historically associated with high exploitability - the physical access prerequisite and high complexity sharply limit the threat model to insider attacks or supply-chain scenarios involving tampered smart cards. The low CIA impact scoring suggests exploitation is more likely to result in localized process instability than reliable arbitrary code execution. This is a low-priority patching item for most organizations, but merits attention in high-security environments where untrusted or externally-sourced smart cards are inserted into sensitive workstations. |
| Exploit ScenarioDerived | An adversary with physical access to a workstation - such as a malicious insider or a supply-chain attacker who has tampered with smart cards - inserts a crafted PIV card or a USB device emulating a smart card reader that returns a Key History Object whose URL field exceeds 118 bytes in the ASN.1 response. When OpenSC's |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – May 29, 2026
Stack buffer overflow in OpenSC's PIV card handler allows a physically present attacker to corrupt memory by presenting a crafted PIV smart card or USB device that returns a URL field exceeding 118 bytes in the Key History Object ASN.1 response, triggering the overflow in piv_process_history() within src/libopensc/card-piv.c. All OpenSC versions prior to 0.27.0-rc1 are affected; the vulnerability is confirmed by the vendor fix in commit 3f24f0b and PR #3558. With a CVSS 4.0 score of 1.0 (AV:P/AC:H/UI:P), exploitation is severely constrained by mandatory physical access and high attack complexity, with no CISA KEV listing and no public exploit identified at time of analysis.
RemediationAI
The upstream fix is available in commit 3f24f0b and PR #3558 against the OpenSC GitHub repository, targeting release 0.27.0-rc1; however, 0.27.0-rc1 is a release candidate - a final stable tagged release has not been independently confirmed at time of analysis, so organizations should monitor https://github.com/OpenSC/OpenSC/releases for the stable 0.27.0 release. As a compensating control, enforce strict physical access policies restricting which smart cards can be inserted into systems running OpenSC, permitting only organizationally issued and cryptographically verified PIV cards. Environments that process externally sourced, untrusted, or user-supplied smart cards carry the highest residual risk and should treat this with elevated urgency. If PIV card support is not operationally required, disabling the PIV card driver in OpenSC configuration eliminates this attack surface entirely but will prevent all PIV card functionality. Applying the patch by building from the fixed commit is the recommended definitive remediation.
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 a widely used open-source library and toolkit for interacting with PKCS#15 and PIV-compliant smart cards. The vulnerable function piv_process_history() in src/libopensc/card-piv.c processes the Key History Object returned by a PIV card via ASN.1 encoding. Prior to the fix, the function read the URL field from the card's ASN.1 response and copied it into a fixed-size stack buffer without validating the input length against the 118-byte boundary, constituting a classic CWE-121 (Stack-based Buffer Overflow). The patch adds an explicit bounds check rejecting URLs longer than 118 bytes with SC_ERROR_INVALID_ASN1_OBJECT, and additionally introduces SHA-256 hash validation (enforcing exactly 64 ASCII hex characters) for the filename component of the URL. The CPE string cpe:2.3:a:opensc:opensc:*:*:*:*:*:*:*:* confirms the vulnerability affects all versions of the opensc software component regardless of platform.
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-rc1, fixed in commit 3f24f0b, contains a stack buffer overflow vulnerability in piv_process_history() in src/libopensc/card-piv.c that allows physically present attackers to trigger memory corruption by presenting a crafted PIV smart card or USB device returning a URL field longer than 118 bytes in the Key History Object ASN.1 response.
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-33315
GHSA-7rrw-cv3r-3cgg
NVD
CVE.org
EPSS
Vulnrichment
VulDB
Exploit-DB