Skip to main content

GNU libextractor CVE-2026-100310

| EUVDEUVD-2026-87314 HIGH
Untrusted Search Path (CWE-426)
2026-09-25 VulnCheck
7.3
CVSS 4.0 · Vendor: VulnCheck
View

Attack ChainAIDerived

Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain

  1. Access
    Obtain local low-privileged shell
  2. Delivery
    Plant malicious plugin in attacker directory
  3. Exploit
    Set LIBEXTRACTOR_PREFIX to that directory
  4. Execution
    Invoke setuid/setgid program using libextractor
  5. Persist
    Plugin loaded and executed with elevated privileges
  6. Impact
    Arbitrary code runs as root/elevated user

Vulnerability Assessment

Weakness
CWE
OWASP Top 10:2025
A08:2025 - Software or Data Integrity Failures
ASVS 5.0
V13 - Configuration Search path verification
Exploitation Conditions

Requires local low-privileged access to the host AND the presence of a setuid or setgid program that uses GNU libextractor (before 1.16) to load plugins; the attacker sets the LIBEXTRACTOR_PREFIX environment variable to a directory containing a malicious plugin, which the vulnerable library loads from that untrusted search path without privilege checks. Limiting factors: exploitation is local-only (no network vector), depends on a suitable setuid/setgid consumer actually being installed and invocable, and is prevented on hosts running the patched 1.16 release; no user interaction by a victim is needed.

Impact

This is a genuine but conditionally-gated local privilege-escalation issue, not a remote-facing emergency. The CVSS 4.0 vector (AV:L/AC:L/AT:P/PR:L/UI:N, base 7.3) is internally consistent with the description: exploitation is LOCAL (AV:L), requires an already-present low-privileged foothold (PR:L), and carries an Attack Requirement (AT:P) that reflects a real prerequisite - a setuid or setgid program that links libextractor must exist on the host, or the untrusted-search-path load never runs with elevated privileges. Where signals disagree, the divergence favors caution: a public POC exists (VulnCheck / github.com/Haitam-lazaar/libextractor-privesc), which raises practical exploitability, but there is no EPSS score and no CISA KEV listing, so this is publicly-demonstrable rather than confirmed actively exploited or mass-scanned. The 'RCE' tag overstates reach - with AV:L this is local arbitrary code execution / privesc, NOT remotely triggerable code execution, and defenders should not triage it as internet-exposed RCE. Net: real priority only for multi-user hosts that ship a setuid/setgid consumer of libextractor; otherwise moderate. The high VC/VI/VA:H impact is credible (code runs as root/elevated) but is only reachable after the setuid-consumer precondition is met.

Exploit ScenarioDerived

A local unprivileged user on a shared host points LIBEXTRACTOR_PREFIX at a directory holding a malicious extractor plugin, then invokes a setuid/setgid binary that uses libextractor to read file metadata; the library loads the attacker's plugin from the untrusted path and executes its code with the binary's elevated privileges, yielding root/group escalation. A public proof-of-concept for this exact LIBEXTRACTOR_PREFIX privesc is available, lowering the skill barrier. The attack is local-only and hinges on the presence of such a setuid/setgid consumer.

This Week Schedule remediation this week. Why: HIGH severity (CVSS 7.0-8.9).
1 public PoC Patch available 0.1% exploitation probability (EPSS)

Get an e-mail when this CVE is exploited, patched or re-scored. Free account.

Alert me

AnalysisAIv1 – Sep 25, 2026

Local privilege escalation in GNU libextractor before 1.16 allows a low-privileged local attacker to execute arbitrary code with elevated privileges by pointing the LIBEXTRACTOR_PREFIX environment variable at a directory containing a malicious plugin, which the library loads from that untrusted search path without privilege checks. Exploitation requires a setuid or setgid consumer of libextractor to be installed and invocable on the host, so the issue is conditionally gated rather than a remote-facing emergency. Publicly available exploit code exists (a PoC repository is referenced), and the vendor has released a fix; no CISA KEV entry confirms active exploitation at time of analysis.

RemediationAI

Vendor-released patch: upgrade GNU libextractor to 1.16 (or later), available from https://ftp.gnu.org/gnu/libextractor/ and as the upstream fix commit https://git.gnunet.org/gnunet/libextractor/commit/6edfa653c048800e24a17f7e8cc2bb42659b8d01.html; distributing packages should track the 1.16 release once their maintainers have rebased. Where upgrading immediately is not possible, remove the setuid or setgid bit from any host application that links libextractor and invokes plugin loading (for example with chmod u-s,g-s), accepting that this breaks the elevated functionality those wrappers were installed to provide. Alternatively, harden the privileged entry point to scrub or reject LIBEXTRACTOR_PREFIX before invoking the library (unset it, or set a fixed trusted prefix) and/or ensure the plugin directory is root-owned and not writable by unprivileged users, which neutralizes the injection but requires code changes to each setuid/setgid consumer. Because exploitation also requires local access, restricting interactive logins and tightly controlling who can execute the affected privileged binaries reduces exposure, though it is a compensating measure and not a substitute for the 1.16 upgrade. Monitor for LIBEXTRACTOR_PREFIX references in process environments and for unexpected .so files in plugin search paths as detection signals. Per available data, the vendor patch is released; there is no indication of an unpatched condition once 1.16 is applied.

Affected VersionsENISA

libextractor 0 <1.16

Affected Packages

euvd libextractor fix: 1.16

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

The root cause is CWE-426 (Untrusted Search Path). libextractor discovers and dynamically loads its extractor plugins at runtime, and versions before 1.16 honor the LIBEXTRACTOR_PREFIX environment variable as part of the plugin search path without sanitizing it or checking whether the calling process is running with elevated privileges. Unlike the dynamic loader's own handling of LD_LIBRARY_PATH/LD_PRELOAD, which is suppressed for setuid/setgid binaries, this application-level variable is still read, so a local user who can influence the environment of a privileged program (for example via a setuid/setgid wrapper or a user-controlled invocation path) can cause an attacker-supplied shared object to be dlopen'ed inside that privileged process. Because the loaded plugin code runs in the same address space and with the same credentials as the host binary, this yields code execution at the elevated privilege level. The CPE cpe:2.3:a:gnu:libextractor:*:*:*:*:*:*:*:* denotes the affected library across all releases prior to 1.16. The assessed vector CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:C/C:H/I:H/A:H reflects the local attack vector, low complexity, low privileges required, no user interaction, and a scope change from the vulnerable component to the privileged consumer process.

Know when Libextractor 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

Vendor (VulnCheck) PRIMARY 7.3 HIGH
CVSS:4.0/AV:L/AC:L/AT:P/PR:L/UI:N/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N
vuln.today AI 8.8 HIGH

Local unprivileged access needed (AV:L/PR:L); code runs with elevated privileges crossing the security boundary (S:C) with full C/I/A:H; setuid-consumer prerequisite noted separately.

3.1 AV:L/AC:L/PR:L/UI:N/S:C/C:H/I:H/A:H
4.0 AV:L/AC:L/AT:P/PR:L/UI:N/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N
SUSE 7.0 HIGH
AV:L/AC:H/PR:L/UI:N/S:U/C:H/I:H/A:H
Red Hat 7.0 MEDIUM

Primary rating from Vendor (VulnCheck).

CVSS VectorVendor: VulnCheck

Attack Vector
Local
Attack Complexity
Low
Attack Requirements
Present
Privileges Required
Low
User Interaction
None
Vulnerable system: Confidentiality
High
Vulnerable system: Integrity
High
Vulnerable system: Availability
High
Subsequent system: Confidentiality
None
Subsequent system: Integrity
None
Subsequent system: Availability
None

DescriptionCVE.org

GNU libextractor before 1.16 loads plugins from an untrusted search path specified by the LIBEXTRACTOR_PREFIX environment variable without proper privilege checks. A local attacker can exploit this by setting LIBEXTRACTOR_PREFIX to a directory containing a malicious plugin that executes arbitrary code with elevated privileges when loaded by a setuid or setgid program.

Technical POC Analysis

CWE-426 (Untrusted Search Path), specifically the plugin search path used by GNU libextractor's dynamic plugin loader.

Full technical POC analysis - root cause, step-by-step exploitation and patch breakdown - is part of the Pro and Business plans.

Latest POC

1 public PoC link from github

Sign in to open the public PoC links collected for this CVE.

Executive ViewAI

Why It Matters

A high-severity local privilege escalation flaw in GNU libextractor, a file metadata extraction library, poses a risk to organizations that deploy setuid or setgid programs linked against it. Although exploitation is conditionally gated-requiring a low-privileged local attacker and a vulnerable consumer-publicly available exploit code exists, elevating the urgency for affected environments. Patching to the vendor-released version 1.16 is essential to prevent attackers from gaining elevated privileges and potentially compromising sensitive systems and data.

Business Impact: High
Compensating Controls

Apply vendor patch.

Threat Intelligence Overview

EPSS Score
0.1%
Top 97% exploitable
Prevalence
Low
niche GNU metadata-extraction library; setuid/setgid consumers are uncommon
Data Quality
7 sources
Confidence: High
EUVD NVD CVE.org EPSS Vulnrichment Vendor GitHub VulDB

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.

SignalValue
Severity HIGH
CISA KEV No
Public POC Yes
EPSS 0.1%
Patch available Yes
Active threat No
Deciding rule
HIGH severity (CVSS 7.0-8.9)
What every action level means
Emergency Immediate action required. Criteria: CRITICAL + in CISA KEV (actively exploited) without patch, OR CRITICAL + EPSS > 30% without patch, OR CRITICAL + active threat signals without patch.
Act Now Prioritize within 24-48h. Criteria: in KEV with patch available, OR CRITICAL + public POC, OR HIGH + EPSS > 10%, OR CRITICAL + active threat, OR any CRITICAL severity.
This Week Schedule remediation this week. Criteria: HIGH severity (CVSS 7.0-8.9). Patch within normal change window.
This Month Plan within 30 days. Criteria: MEDIUM severity (CVSS 4.0-6.9), lower exploitation probability. Include in regular patch cycle.
Monitor Track and reassess. Criteria: LOW severity (CVSS 0.1-3.9), minimal exploitation risk. No immediate action needed.

SSVC AssessmentENISA

SSVC Decision
Scheduled
Exploitation
Poc
System Exposure· derived
Small
Automatable
No
Human Impact
High
Technical Impact
Total

Priority Score

56
Low Medium High Critical
KEV: 0
EPSS: 0
CVSS: +36
PoC: +20
Weaponized: 0
Threat intel: 0
Gov advisory: 0

Attack Technique

Remote Code Execution represents the critical moment when an attacker successfully runs arbitrary code on a target system without physical access.

CVE-2018-16430 HIGH POC
8.8 Sep 04

GNU Libextractor through 1.7 has an out-of-bounds read vulnerability in EXTRACTOR_zip_extract_method() in zip_extractor.

CVE-2018-14346 HIGH POC
8.8 Jul 17

GNU Libextractor before 1.7 has a stack-based buffer overflow in ec_read_file_func (unzip.c). Rated high severity (CVSS

CVE-2026-91752 HIGH POC
8.7 Sep 15

Stack-based buffer overflow in GNU libextractor before 1.15 allows remote, unauthenticated attackers to crash any applic

CVE-2017-15600 HIGH POC
7.5 Oct 18

In GNU Libextractor 1.4, there is a NULL Pointer Dereference in the EXTRACTOR_nsf_extract_method function of plugins/nsf

CVE-2017-15267 HIGH POC
7.5 Oct 11

In GNU Libextractor 1.4, there is a NULL Pointer Dereference in flac_metadata in flac_extractor.c. Rated high severity (

CVE-2017-15601 HIGH POC
7.5 Oct 18

In GNU Libextractor 1.4, there is a heap-based buffer overflow in the EXTRACTOR_png_extract_method function in plugins/p

CVE-2017-15602 HIGH POC
7.5 Oct 18

In GNU Libextractor 1.4, there is an integer signedness error for the chunk size in the EXTRACTOR_nsfe_extract_method fu

CVE-2017-17440 MEDIUM POC
6.5 Dec 06

GNU Libextractor 1.6 allows remote attackers to cause a denial of service (NULL pointer dereference and application cras

CVE-2018-20431 MEDIUM POC
6.5 Dec 24

GNU Libextractor through 1.8 has a NULL Pointer Dereference vulnerability in the function process_metadata() in plugins/

CVE-2018-20430 MEDIUM POC
6.5 Dec 24

GNU Libextractor through 1.8 has an out-of-bounds read vulnerability in the function history_extract() in plugins/ole2_e

CVE-2018-14347 MEDIUM POC
6.5 Jul 17

GNU Libextractor before 1.7 contains an infinite loop vulnerability in EXTRACTOR_mpeg_extract_method (mpeg_extractor.c).

CVE-2017-15266 MEDIUM POC
5.5 Oct 11

In GNU Libextractor 1.4, there is a Divide-By-Zero in EXTRACTOR_wav_extract_method in wav_extractor.c via a zero sample

Vendor StatusVendor

SUSE

Severity: Important

This site uses cookies essential for authentication and security. No tracking or analytics cookies are used. Privacy Policy