{"dataType":"CVE_RECORD","dataVersion":"5.2","cveMetadata":{"cveId":"CVE-2025-66038","assignerOrgId":"a0819718-46f1-4df5-94e2-005712e83aaa","state":"PUBLISHED","assignerShortName":"GitHub_M","dateReserved":"2025-11-21T01:08:02.615Z","datePublished":"2026-03-30T17:03:55.914Z","dateUpdated":"2026-04-01T18:15:33.347Z"},"containers":{"cna":{"title":"OpenSC: `sc_compacttlv_find_tag` can return out-of-bounds pointers","problemTypes":[{"descriptions":[{"cweId":"CWE-126","lang":"en","description":"CWE-126: Buffer Over-read","type":"CWE"}]}],"metrics":[{"cvssV3_1":{"attackComplexity":"HIGH","attackVector":"PHYSICAL","availabilityImpact":"LOW","baseScore":3.9,"baseSeverity":"LOW","confidentialityImpact":"LOW","integrityImpact":"LOW","privilegesRequired":"NONE","scope":"UNCHANGED","userInteraction":"NONE","vectorString":"CVSS:3.1/AV:P/AC:H/PR:N/UI:N/S:U/C:L/I:L/A:L","version":"3.1"}}],"references":[{"name":"https://github.com/OpenSC/OpenSC/security/advisories/GHSA-72x5-fwjx-2459","tags":["x_refsource_CONFIRM"],"url":"https://github.com/OpenSC/OpenSC/security/advisories/GHSA-72x5-fwjx-2459"},{"name":"https://github.com/OpenSC/OpenSC/commit/6db171bcb6fd7cb3b51098fefbb3b28e44f0a79c","tags":["x_refsource_MISC"],"url":"https://github.com/OpenSC/OpenSC/commit/6db171bcb6fd7cb3b51098fefbb3b28e44f0a79c"},{"name":"https://github.com/OpenSC/OpenSC/wiki/CVE-2025-66038","tags":["x_refsource_MISC"],"url":"https://github.com/OpenSC/OpenSC/wiki/CVE-2025-66038"}],"affected":[{"vendor":"OpenSC","product":"OpenSC","versions":[{"version":"< 0.27.0","status":"affected"}]}],"providerMetadata":{"orgId":"a0819718-46f1-4df5-94e2-005712e83aaa","shortName":"GitHub_M","dateUpdated":"2026-03-30T17:03:55.914Z"},"descriptions":[{"lang":"en","value":"OpenSC is an open source smart card tools and middleware. Prior to version 0.27.0, sc_compacttlv_find_tag searches a compact-TLV buffer for a given tag. In compact-TLV, a single byte encodes the tag (high nibble) and value length (low nibble). With a 1-byte buffer {0x0A}, the encoded element claims tag=0 and length=10 but no value bytes follow. Calling sc_compacttlv_find_tag with search tag 0x00 returns a pointer equal to buf+1 and outlen=10 without verifying that the claimed value length fits within the remaining buffer. In cases where the sc_compacttlv_find_tag is provided untrusted data (such as being read from cards/files), attackers may be able to influence it to return out-of-bounds pointers leading to downstream memory corruption when subsequent code tries to dereference the pointer. This issue has been patched in version 0.27.0."}],"source":{"advisory":"GHSA-72x5-fwjx-2459","discovery":"UNKNOWN"}},"adp":[{"metrics":[{"other":{"type":"ssvc","content":{"timestamp":"2026-04-01T18:15:18.318069Z","id":"CVE-2025-66038","options":[{"Exploitation":"poc"},{"Automatable":"no"},{"Technical Impact":"partial"}],"role":"CISA Coordinator","version":"2.0.3"}}}],"title":"CISA ADP Vulnrichment","providerMetadata":{"orgId":"134c704f-9b21-4f2e-91b3-4a467353bcc0","shortName":"CISA-ADP","dateUpdated":"2026-04-01T18:15:33.347Z"}}]}}