Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessConnect spoofed JL2005 USB camera
-
DeliveryDevice reports 1022+ allocation entries
-
ExploitTrigger overflow in jl2005c_init()
-
ExecutionOverwrite saved return address and heap
-
ImpactExecute attacker-controlled code
Vulnerability Assessment
| Weakness |
CWE
ASVS 5.0
V15 - Secure Coding and Architecture Bounds checking, write limits
MITRE ATT&CK
2 techniques across 2 tactics: Execution, Privilege Escalation The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up. |
| Exploitation Conditions | Requires physical attachment of a USB device that spoofs a Jeilin JL2005B/C/D camera so that libgphoto2's jl2005c camera driver is selected and jl2005c_init() runs; the malicious device must report an allocation-table entry count of 1022 or more, producing an oversized alloc_table_size that overflows both the local stack 'info' buffer and the heap priv->table buffer. Limiting factors: exploitation needs physical/local access to a USB port (AV:P) - it is not reachable over a network - and the target must actually probe/mount the device via the jl2005c driver path; it does require no authentication (PR:N) and no user interaction beyond device enumeration (UI:N). The pre-patch code lacked any bounds check on the device-supplied entry count; the vendor fix adds that validation, and updating is the fix the evidence provides. |
| Impact | The dominant, risk-limiting signal is the attack vector: the supplied CVSS 4.0 vector is AV:P (physical), meaning exploitation requires an attacker to physically connect a malicious USB device to the host - this is not a remotely reachable flaw despite the high 7.0 score and the 'RCE' tag. The remaining metrics are severe (AC:L, PR:N unauthenticated, UI:N, VC:H/VI:H/VA:H), so once a rogue device is attached the technical impact is full compromise of the affected process, but the physical prerequisite sharply narrows real-world exposure to scenarios involving untrusted USB peripherals (kiosks, shared workstations, forensic/evidence handling, supply-chain-tampered cameras). There is no KEV listing in the input and no EPSS score was provided, so there is no evidence of active exploitation or a quantified exploitation probability; the VulnCheck advisory and a hackmd technical write-up are present as a public PoC reference, but the input does not mark it as confirmed working exploit code. The vuln.today decision label is 'this_week', consistent with a serious memory-corruption bug that is not an emergency because of the physical access barrier. Net: this is a genuine code-execution-class bug worth patching on the stated this_week cadence, but it is a physical-access issue, not a widespread remote threat - the high CVSS reflects impact, not ease of reach. |
| Exploit ScenarioDerived | An attacker crafts or reflashes a USB device to impersonate a Jeilin JL2005B/C/D camera and physically connects it to a target Linux machine where libgphoto2's jl2005c driver probes it; the spoofed device reports 1022 or more allocation-table entries, triggering stack- and heap-based buffer overflows in jl2005c_init() that overwrite the saved return address and adjacent heap data to potentially execute attacker-controlled code. A public PoC reference exists (VulnCheck advisory and a hackmd write-up); it is not verified as working exploit code. Exploitation requires physical access (AV:P) but no authentication (PR:N) and no additional user interaction beyond the device being enumerated. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Nov 02, 2026
Stack- and heap-based buffer overflows in libgphoto2 through 2.5.34's jl2005c_init() can corrupt memory and potentially permit code execution when a malicious USB device impersonates a Jeilin JL2005B/C/D camera. Exploitation requires physical attachment of the spoofed device; once enumerated by the jl2005c driver, a device-reported allocation-table entry count of 1022 or more overflows the local stack 'info' buffer and the heap priv->table buffer. The attack needs no authentication or user interaction beyond device enumeration, and the supplied data identifies upstream fixes but no confirmed active exploitation (CISA KEV) or verified working exploit code.
RemediationAI
Apply the upstream fixes referenced by the vendor: GitHub commits af3b8e9c542cda863fb5f2f3cfeb261bd78e4442 and 6a3393dd996502457ab965432cf0b2035278825e, or update to a libgphoto2 release that contains them; the supplied data does not provide a tagged fixed version, so the commit-level patches are the exact remediation available. Updating is the complete fix identified in the evidence. For hosts that cannot update immediately, reduce exposure by preventing untrusted USB devices from being enumerated through libgphoto2 (strict physical USB access controls), recognizing that this is only a compensating control and does not remove the memory-corruption flaw. The vuln.today priority label is this_week; monitor the upstream issue at https://github.com/gphoto/libgphoto2/issues/1326 for release status.
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
libgphoto2 is a userspace library used by digital-camera applications to communicate with cameras over USB and related protocols; its camlibs/jl2005c driver handles Jeilin JL2005B/C/D camera protocols. In jl2005c_init(), the driver derives an allocation-table size from the device-supplied nb_entries and uses it without validating it against the destination buffers. Per the supplied patch diff, the pre-fix code could write alloc_table_size bytes into the local stack buffer 'info' and into the heap buffer priv->table, so a malicious device reporting 1022 or more entries overflows both and can overwrite the saved return address and heap data. The flaw is CWE-787 (out-of-bounds write). The upstream fix adds checks that alloc_table_size fits sizeof(info) and that alloc_table_size - 0x30 fits sizeof(priv->table), returning GP_ERROR_CORRUPTED_DATA otherwise; a companion hunk in jl2005bcd_decompress.c adds a thumbnail payload size check. The CPE cpe:2.3:a:gphoto:libgphoto2:*:*:*:*:*:*:*:* covers libgphoto2 releases through 2.5.34.
Know when Libgphoto2 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:L/AT:N/PR:N/UI:N/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N
AV:P because a malicious USB device must be physically attached; PR:N/UI:N since the driver auto-probes the device without auth; C/I/A:H for potential code execution via return-address overwrite.
Primary rating from Vendor (VulnCheck).
CVSS VectorVendor: VulnCheck
DescriptionCVE.org
libgphoto2 through 2.5.34 contains stack-based and heap-based buffer overflow vulnerabilities in jl2005c_init() that allow malicious USB devices to corrupt memory by supplying an unbounded allocation table entry count. Attackers can connect a spoofed Jeilin JL2005B/C/D camera reporting 1022 or more entries to overwrite the saved return address and heap data, potentially achieving code execution.
Executive ViewAI
CVE-2026-120451 is a high-severity buffer overflow vulnerability in libgphoto2, a library used by many applications to interact with digital cameras, which could allow an attacker to execute arbitrary code on affected systems. The vulnerability requires physical access to a system via a malicious USB device, limiting the attack surface but still posing a risk to sensitive environments. Leadership should prioritize patching because exploitation could lead to unauthorized code execution and potential data compromise, especially in organizations where physical access controls are not strictly enforced.
Apply vendor patch.
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.
Memory corruption occurs when a program writes data beyond the boundaries of allocated memory regions or accesses memory in unintended ways, violating the integrity of the process's address space.
Remote Code Execution represents the critical moment when an attacker successfully runs arbitrary code on a target system without physical access.
EUVD-2026-115211
GHSA-7rfg-j54g-6xm2
NVD
CVE.org
EPSS
Exploit-DB