Re: [BLFS Trac] #23686: mpg123-1.33.7

BLFS Trac ([email protected] via blfs-book Mailing List) <[email protected]> Mon, 03 Aug 2026 22:40:30 -0000
Newsgroups gmane.linux.lfs.beyond.book
Message-ID <[email protected]>
This is a multi-part message in MIME format...

------------=_1785796834-1024790-7692
Content-Type: multipart/related;
 boundary="===============8901537500814424067=="

--===============8901537500814424067==
MIME-Version: 1.0
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: 8bit

#23686: mpg123-1.33.7
-------------------------+------------------------
 Reporter:  Bruce Dubbs  |       Owner:  blfs-book
     Type:  enhancement  |      Status:  new
 Priority:  elevated     |   Milestone:  13.1
Component:  BOOK         |     Version:  git
 Severity:  normal       |  Resolution:
 Keywords:               |
-------------------------+------------------------
Changes (by Joe Locash):

 * priority:  normal => elevated

Comment:

 Source: https://www.openwall.com/lists/oss-security/2026/08/03/2

 {{{
 Message-ID: <20260803101132.5e86cb35@plasteblaster>
 Date: Mon, 3 Aug 2026 10:11:32 +0200
 From: "Dr. Thomas Orgis" <[email protected]>
 To: <[email protected]>
 Subject: mpg123 release 1.33.7 with lots of security-relevant fixes

 Dear all,

 among lots of little fixes in the current 1.33.7 release of mpg123
 (https://mpg123.org/#2026-08-02), there are some more serious security
 issues that might be relevant for this list.

 I'll include the full changes list below. To highlight some:

 - The Windows port with enabled unicode path handling had a stupid
   buffer overflow, possibly exploitable using remote playlists.

 - OOB reads/writes for certain user-set parameters:

         mpg123 --continue --random --listentry <n>

         (where n > size of list)

         out123 --endian <e> --channels <x> --inputch <y>

         (where x != y)

         out123 --filter "a,b ,c,…"

         (whitespace before comma)

 - Disclosure of uninitialized memory to servers via mpg123 --auth-file
   (no line ends in file).

 - Deadlock in mpg123 --buffer <n> -e s24

   (for most values of n … only relevant if user chooses 24 bit encoding
   and very reliable, so probably no surprise to anyone, but a DoS in
   principle, if the encoding or buffer option is attacker-influenced)

 There is a number of smaller and theoretical issues that you find when
 you scan the code for possibilities (like size_t overflow in realloc).
 The library APIs got some hardening against applications abusing them /
 shooting themselves into the feet. It's amazing how many little
 oversights accumulate, even if you thought you applied some care when
 writing the code back then. I hope the LLM-assisted scanning doesn't
 have that many more issues to find … as the supply of nights to devote
 to the hobby on short notice is also not endless … (as you might notice
 from the amount of typos in the list below).

 I understand that CVEs for the more serious bugs are being requested by
 reporter(s), but I do not have details and did not want to delay the
 release.


 1.33.7
 ------
 - mpg123:
 -- Fix heap buffer overflows in unicode path conversion on Windows (bug
 388,
    thanks to Alejandro Ramos).
 -- Fix information disclosure of uninitialied memory for --auth-file
 without
    line endings. (bug 390, thanks to Alejandro Ramos)
 -- Fix out-of-bounds read/write when combining --continue --random
 --listentry <n>
    where n is larger than the playlist size. (bug 391, thanks to Alejandro
 Ramos)
 -- Fix a harmless valgrind memory leak report by not nulling playlist
 name.
 -- Fix error handling of win32_net_writestring() (Windows only) by
 actually using
    a signed type, also preventing a OOB read on failure.
    (bug 392 by Alejandro Ramos)
 -- Fix a mostly harmless OOB read of 1 byte when printing USLT lyrics.
    (bug 392)
 -- Fix leaking file descriptor on read error from --equalizer file. (bug
 392)
 -- Hardening of loading HTTP(S) via curl or wget against funky URLs by
 including
    the -- separator. No actual vulnerability, tough, just extra care. (bug
 392)
 - out123:
 -- Fix heap overrun on --endian conversion with differing input and output
    channel counts. (bug 391)
 -- Fix parsing of filter specs with whitespace before commas, which
 resulted
    in out-of-bounds writes before. (bug 391)
 - libmpg123, mpg123: Harden memory realloc calls against multiplication
 overflow
   of size_t in arguments. Specifically, this addresses part of bug 389
 with possible
   application abuse of mpg123_set_index64(). (bug 389 by Alejandro Ramos)
 - libmpg123:
 -- Fix possible use of uninitialized values in layer III dequantization.
    III_dequantize_sample() for consistent output also for strange input.
 The new
    code seems to be slightly faster after some rearrangements.
    (thanks to He Huang, Swinburne University of Technology (discovered
 using
    NexusSan))
 -- Fix a double free when deleting a handle after failed mpg123_decoder()
 call
    (possibly among others). (bug 389)
 -- More strong wording in API that ID3 text convenience links are short-
 lived,
    but safeguard against ignorant use by nulling them early.
    (bug 389)
 -- Prevent double free in mpg123_set_index() 32 bit wrapper being called
 with
    index size 0. (bug 392)
 -- Harden against an application wielding a foot gun by handing in an
 undersized
    decoding buffer betwee seek and read (return error before trying to
 decode
    and discard frames in that case). (bug 392)
 -- Do properly terminate ID3v2 texts coming in UTF16 encoding when they
 overwrite
    previous frames, like with other encodings. The symptom was a shorter
 second
    frame resulting in a combined text with the earlier longer frame.
    (bug 392)
 -- Check and properly handle null source buffer and zero size in
 mpg123_store_utf8()
    instead of reading past (before) buffers. (bug 392)
 -- Ensure clients get ID3v1 data with (unmotivated) mpg123_id3_raw()
    only if the parser decided that it is there, not possibly the last 128
 bytes of
    a seekable stream without ID3v1 tag. (bug 392)
 -- Prevent impossible NtoM resampling with too low target rate (like 1 Hz)
 which
    would trgger endless looping. (bug 392)
 - libout123:
 -- Fix deadlock in buffer mode when combined with (stereo) 24 bit output.
 Now
    also mpg123 --buffer 4096 -e s24 shall actuallly work. Sorry. (bug 392)
 -- Abort early on zero/negative rate and channel count in out123_start().
    (bug 392)
 -- Fix divide by zero in WAV writing by catching channel counts that go
 zero in the
    16 bit WAV header field. (bug 392)
 - libsyn123:
 -- Explictly reject mismatched format for appending filters with
    syn123_setup_filter(), preventing memory errors from that API-violating
 use.
    (bug 392)
 -- Harden the dirty resampling interpolator against extreme rates (around
 1e18 Hz)
    by fixing a sample offset check to not do the exact overflowing
 addition
    that it is supposed to guard against. The fine resampler was … fine.
 (bug 392)
 -- Error out on trying to create a filter of order 0 instead of dividing
 by zero
    later. (bug 392)
 }}}
-- 
Ticket URL: <https://wiki.linuxfromscratch.org/blfs/ticket/23686#comment:1>
BLFS Trac <https://wiki.linuxfromscratch.org/blfs/>
Beyond Linux From Scratch

--===============8901537500814424067==--

------------=_1785796834-1024790-7692
Content-Type: text/plain; charset="UTF-8"
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0

-- 
http://lists.linuxfromscratch.org/sympa/info/blfs-book
Unsubscribe: See the above information page

------------=_1785796834-1024790-7692--