oss-sec mailing list archives
Re: [musl] CVE-2025-26519: musl libc: input-controlled out-of-bounds write primitive in iconv()
From: Rich Felker <dalias () libc org>
Date: Thu, 13 Feb 2025 16:03:19 -0500
On Thu, Feb 13, 2025 at 12:15:54PM -0500, Rich Felker wrote:
Vulnerability description: A vulnerability has been identified in musl libc's implementation of iconv that can result in out-of-bounds memory writes in applications which process untrusted input using iconv and where the input charset for the conversion is input-controlled. In order for the vulnerability to be exposed, an application must call iconv_open with an output encoding of UTF-8 and and input encoding of EUC-KR, and must subsequently process untrusted input using the resulting conversion descriptor. The most common scenario in which this occurs is using the declared MIME charset of untrusted input (for example, in XML, HTML, or MIME-encoded email) as input to iconv_open for converting arbitrary-encoding input to UTF-8. This issue was discovered and reported by Nick Wellnhofer. It arose as a combination of incorrect input byte validation in the EUC-KR decoder, and the fact that the UTF-8 output encoder assumed an invariant that the input decoder never produces character codes which are not valid Unicode Scalar Values.
Addendum: I also have a test program that will check if your iconv is affected, attached. It runs over all 65536 byte pairs and looks for bogus changes to the output buffer pointer/remaining.
Attachment:
euckr_bug.c
Description:
Current thread:
- CVE-2025-26519: musl libc: input-controlled out-of-bounds write primitive in iconv() Rich Felker (Feb 13)
- Re: [musl] CVE-2025-26519: musl libc: input-controlled out-of-bounds write primitive in iconv() Rich Felker (Feb 13)
- Re: [musl] CVE-2025-26519: musl libc: input-controlled out-of-bounds write primitive in iconv() Daniel Gutson (Feb 13)
