CVE-2026-40338
Full vulnerability record from the local CVENow database.
Description
libgphoto2 is a camera access and control library. Versions up to and including 2.5.33 have an out-of-bounds read in the PTP_DPFF_Enumeration case of `ptp_unpack_Sony_DPD()` in `camlibs/ptp2/ptp-pack.c` (line 856). The function reads a 2-byte enumeration count N via `dtoh16o(data, *poffset)` without verifying that 2 bytes remain in the buffer. The standard `ptp_unpack_DPD()` at line 704 has this exact check, confirming the Sony variant omitted it by oversight. Commit 3b9f9696be76ae51dca983d9dd8ce586a2561845 fixes the issue.
Severity
MEDIUM
CVSS score
5.2
(v3.1)
Vulnerability status
Deferred
Source identifier
Published
2026-04-18 00:16:37.810000
Last modified
2026-10-26 22:10:00.163000
View original CVE JSON
{
"id": "CVE-2026-40338",
"sourceIdentifier": "[email protected]",
"published": "2026-04-18T00:16:37.810",
"lastModified": "2026-10-26T22:10:00.163",
"vulnStatus": "Deferred",
"cveTags": [],
"descriptions": [
{
"lang": "en",
"value": "libgphoto2 is a camera access and control library. Versions up to and including 2.5.33 have an out-of-bounds read in the PTP_DPFF_Enumeration case of `ptp_unpack_Sony_DPD()` in `camlibs/ptp2/ptp-pack.c` (line 856). The function reads a 2-byte enumeration count N via `dtoh16o(data, *poffset)` without verifying that 2 bytes remain in the buffer. The standard `ptp_unpack_DPD()` at line 704 has this exact check, confirming the Sony variant omitted it by oversight. Commit 3b9f9696be76ae51dca983d9dd8ce586a2561845 fixes the issue."
},
{
"lang": "es",
"value": "libgphoto2 es una biblioteca de acceso y control de cámaras. Las versiones hasta la 2.5.33 inclusive tienen una lectura fuera de límites en el caso PTP_DPFF_Enumeration de ’ptp_unpack_Sony_DPD()’ en ’camlibs/ptp2/ptp-pack.c’ (línea 856). La función lee un recuento de enumeración N de 2 bytes a través de ’dtoh16o(data, poffset)’ sin verificar que queden 2 bytes en el búfer. La función estándar ’ptp_unpack_DPD()’ en la línea 704 tiene esta verificación exacta, lo que confirma que la variante de Sony lo omitió por descuido. El commit 3b9f9696be76ae51dca983d9dd8ce586a2561845 soluciona el problema."
}
],
"affected": [
{
"source": "[email protected]",
"affectedData": [
{
"vendor": "gphoto",
"product": "libgphoto2",
"versions": [
{
"version": "<= 2.5.33",
"status": "affected"
}
]
}
]
}
],
"metrics": {
"cvssMetricV31": [
{
"source": "[email protected]",
"type": "Secondary",
"cvssData": {
"version": "3.1",
"vectorString": "CVSS:3.1/AV:P/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:L",
"baseScore": 5.2,
"baseSeverity": "MEDIUM",
"attackVector": "PHYSICAL",
"attackComplexity": "LOW",
"privilegesRequired": "NONE",
"userInteraction": "NONE",
"scope": "UNCHANGED",
"confidentialityImpact": "HIGH",
"integrityImpact": "NONE",
"availabilityImpact": "LOW"
},
"exploitabilityScore": 0.9,
"impactScore": 4.2
}
],
"ssvcV203": [
{
"source": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
"ssvcData": {
"timestamp": "2026-04-20T16:13:41.644804Z",
"id": "CVE-2026-40338",
"options": [
{
"exploitation": "none"
},
{
"automatable": "no"
},
{
"technicalImpact": "partial"
}
],
"role": "CISA Coordinator",
"version": "2.0.3"
}
}
]
},
"weaknesses": [
{
"source": "[email protected]",
"type": "Secondary",
"description": [
{
"lang": "en",
"value": "CWE-125"
}
]
}
],
"references": [
{
"url": "https://github.com/gphoto/libgphoto2/commit/3b9f9696be76ae51dca983d9dd8ce586a2561845",
"source": "[email protected]"
},
{
"url": "https://github.com/gphoto/libgphoto2/security/advisories/GHSA-2hwp-w84q-27hf",
"source": "[email protected]"
}
]
}