Bug 2510737 (CVE-2026-18739)

Summary: CVE-2026-18739 popt-devel: popt-static: Off-by-one in poptStuffArgs
Product: [Other] Security Response Reporter: OSIDB Bzimport <bzimport>
Component: vulnerabilityAssignee: Product Security <prodsec-ir-bot>
Status: NEW --- QA Contact:
Severity: low Docs Contact:
Priority: low    
Version: unspecifiedCC: kshier, rhel-process-autobot, stcannon, teagle, watson-tool-maintainers, yguenane
Target Milestone: ---Keywords: Security
Target Release: ---   
Hardware: All   
OS: Linux   
Whiteboard:
Fixed In Version: Doc Type: ---
Doc Text:
A flaw was found in popt, a command-line option parsing library. An off-by-one error in the poptStuffArgs function, when repeatedly called by a host application or through deep alias nesting, can lead to corruption of internal program data. This corruption could potentially enable a local attacker to execute arbitrary code if the host application then unsafely processes the altered data.
Story Points: ---
Clone Of: Environment:
Last Closed: Type: ---
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:
Bug Depends On: 2511605    
Bug Blocks:    

Description OSIDB Bzimport 2026-08-03 18:55:51 UTC
Depth check lacks + 1 vs handleAlias; 10th stuff can advance os past optionStack[0..9] into adjacent poptContext fields (e.g. leftovers). Claimed LCE only if host uses corrupted poptGetArg* unsafely.

popt-1.18/src/popt.c:1671

Flow: Host repeatedly calls poptStuffArgs (and/or deep alias nesting) → overflow con->os → corrupt context → later poptGetArg / poptGetArgs / poptPeekArg → only if host sinks that string into exec/system/popen/dlopen (or equivalent).

Analysis has identified that this goes back to the git tag `popt-1_1_1`