Skip to main content

inih CVE-2025-71450

| EUVDEUVD-2025-211238 MEDIUM
Buffer Under-read (CWE-127)
2026-11-02 VulnCheck GHSA-gh7m-xpp3-w3vq
4.8
CVSS 4.0 · Vendor: VulnCheck
View

Attack ChainAIDerived

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

  1. Access
    Deliver crafted INI file to parser
  2. Exploit
    Supply overlong line plus embedded NUL
  3. Execution
    Trigger abyss[-1] stack under-read
  4. Impact
    Cause undefined behavior or crash

Vulnerability Assessment

Weakness
CWE
Exploitation Conditions

Exploitation requires the host application to parse attacker-controlled INI input (file or string) using inih before r63, and the input must contain a line of at least INI_MAX_LINE-1 bytes immediately followed by an embedded NUL byte so that the overlong-line discard loop computes strlen(abyss)==0 and reads abyss[-1]. Limiting factors: the attack vector is local (AV:L) and demands passive user/application interaction (UI:P) to load the malicious INI data - there is no remote network trigger in the scored vector; privileges are not required (PR:N). Impact is bounded to a single out-of-bounds read producing undefined behavior/crash (VA:L), with no confidentiality or integrity effect, so the realistic consequence is limited to availability of the parsing process. The only complete fix per the vendor is updating to r63.

Impact

This is a genuinely low-priority issue despite the available patch and 'this_month' decision label. The supplied CVSS 4.0 vector (AV:L/AC:L/AT:N/PR:N/UI:P/VC:N/VI:N/VA:L) scores only 4.8 (Medium), and every high-impact signal is absent: no confidentiality or integrity impact (VC:N/VI:N) and only low availability impact (VA:L). The flaw is a one-byte stack buffer under-read (CWE-127) reading abyss[-1] - it does not leak that byte to the attacker; it corrupts a comparison and manifests as undefined behavior typically caught by memory sanitizers, so the realistic worst case is misparsing or a crash, not data theft. No EPSS score and no KEV listing are present in the input, so exploitation status is 'no public exploit identified at time of analysis'; a public technical writeup (hackmd) and a VulnCheck advisory describe the flaw but are not verified working exploit code. The local attack vector (AV:L) plus required passive user interaction (UI:P - an application must parse attacker-supplied INI input) further limit real-world risk. Note one tension to verify: the tag labels this 'Information Disclosure,' but the CVSS vector sets VC:N and marks only availability (VA:L) impact, so the 'disclosure' framing is not supported by the scored impact.

Exploit ScenarioDerived

An attacker supplies a crafted INI file or string to an application that embeds inih (before r63), containing a line of at least INI_MAX_LINE-1 bytes followed immediately by an embedded NUL byte. When ini_parse_stream() processes the overlong discarded line, strlen returns 0 and the code reads abyss[strlen(abyss)-1], i.e. abyss[-1], one byte before the buffer. A public writeup and VulnCheck advisory document the mechanism, but no confirmed working exploit code is provided; the practical outcome is undefined behavior or a crash rather than code execution or data disclosure.

This Month Plan within 30 days. Why: MEDIUM severity (CVSS 4.0-6.9).
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 – Nov 02, 2026

A one-byte stack buffer under-read exists in ini_parse_stream() in inih before release r63, reachable when a host application parses attacker-supplied INI content containing a line of at least INI_MAX_LINE-1 bytes immediately followed by an embedded NUL byte. The scored impact is limited to availability: a single out-of-bounds read of abyss[-1] that triggers undefined behavior and can crash the parsing process, with no confidentiality or integrity effect in the assessed vector (the CWE-127 classification reflects the out-of-bounds read class, not a confirmed disclosure primitive). The vector is local (AV:L) and requires the user or application to load the crafted INI data (UI:R/UI:P) with no privileges needed (PR:N); exploitation conditions depend entirely on the host application accepting untrusted INI input. Vendor-released patch: r63, via upstream PR #206 and commit 8e06f6b; a public technical write-up describing the trigger is referenced, but no working exploit code and no active exploitation (CISA KEV) were identified at time of analysis, and the priority label is this_month.

RemediationAI

Vendor-released patch: upgrade to inih r63, which is the only complete fix per the vendor; the change is upstream PR #206 (https://github.com/benhoyt/inih/pull/206) with commit 8e06f6b77b5d4471bdc6d85ada81b67d37354a5c, adding a size_t abyss_len and guarding the newline check with abyss_len > 0 so abyss[-1] is never dereferenced. For embedded consumers, identify every bundled or vendored copy of ini.c (including transitive dependencies that ship pre-r63 sources) and rebuild against r63 or cherry-pick the two-line guard, then confirm the patch by diffing against the r62 reference at https://github.com/benhoyt/inih/blob/r62/ini.c#L162-L169 and the release notes at https://github.com/benhoyt/inih/releases/tag/r63. No vendor-documented workaround or configuration-based mitigation is described in the available sources, and because the trigger requires a long line ending in an embedded NUL byte, updating the library is the recommended course rather than attempting to filter INI input at the call site; the residual risk until patched is a local, user-interaction-driven crash of the parsing process with no assessed confidentiality or integrity impact.

Affected VersionsENISA

inih 0 <r63

Affects your stack

Find out whether the stacks and servers you run are on an affected version.

Checking this CVE against your own stacks and servers is part of the Basic plan and up.

Technical ContextAI · show details

inih is a small, widely embedded C INI parser (benhoyt/inih) used as a library inside other applications rather than as a standalone network service, so exposure is inherited from whatever host program calls it. The flaw lives in the overlong-line discard path of ini_parse_stream() in ini.c: when a line exceeds the parser's fixed INI_MAX_LINE buffer, the remainder of that line is consumed in a discard loop that inspects abyss[strlen(abyss) - 1] to detect a trailing newline (r62 code at ini.c lines 162-169). Because the check assumes a non-empty string, an input line of at least INI_MAX_LINE-1 bytes terminated by an embedded NUL byte leaves abyss as an empty string, so strlen(abyss) - 1 underflows to SIZE_MAX and the parser reads abyss[-1], one byte before the buffer. This is CWE-127 (buffer under-read); the upstream fix in PR #206 caches the length in a new size_t abyss_len and guards the access with abyss_len > 0 before comparing abyss[abyss_len - 1] to a newline. Confirming scope: the CPE cpe:2.3:a:benhoyt:inih:*:*:*:*:*:*:*:* covers all builds prior to r63, and the trigger is not described as remotely reachable in the scored vector - it is a local, interaction-dependent parsing condition inside the embedding application's memory, and the observable effect reported by the finders is undefined behavior flagged by memory sanitizers rather than demonstrated data exfiltration.

Know when Inih 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 4.8 MEDIUM
CVSS:4.0/AV:L/AC:L/AT:N/PR:N/UI:P/VC:N/VI:N/VA:L/SC:N/SI:N/SA:N
vuln.today AI 3.3 LOW

Attacker supplies crafted INI parsed locally so AV:L and UI:R; no privileges needed (PR:N); single-byte under-read yields no C/I impact and only low availability (crash/UB).

3.1 AV:L/AC:L/PR:N/UI:R/S:U/C:N/I:N/A:L
4.0 AV:L/AC:L/AT:N/PR:N/UI:P/VC:N/VI:N/VA:L/SC:N/SI:N/SA:N

Primary rating from Vendor (VulnCheck).

CVSS VectorVendor: VulnCheck

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

DescriptionCVE.org

inih before r63 contains a one-byte stack buffer under-read in ini_parse_stream() in ini.c that allows attackers to read abyss[-1] via an embedded NUL byte after an overlong line. Attackers can supply an INI file or string with a line of at least INI_MAX_LINE-1 bytes followed by a NUL byte, causing undefined behavior reported by memory sanitizers.

Threat Intelligence Overview

EPSS Score
0.1%
Top 98% exploitable
Prevalence
Medium
inih is a popular lightweight INI parser embedded in many C/C++ projects
Social Media
1
Sightings
Data Quality
4 sources
Confidence: Medium

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 MEDIUM
CISA KEV No
Public POC No
EPSS 0.1%
Patch available Yes
Active threat No
Deciding rule
MEDIUM severity (CVSS 4.0-6.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· derived
Defer
Exploitation· derived
None
System Exposure· derived
Small
Automatable· derived
No
Human Impact· derived
Medium

Priority Score

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

Attack Technique

Information disclosure occurs when an application unintentionally exposes sensitive data that aids attackers in reconnaissance or directly compromises security.

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