J-Security Center

Title: AdPlug Multiple Remote File Buffer Overflow Vulnerabilities

Severity: HIGH

Description:

AdPlug is an open-source library to play AdLib sound files. It is implemented in C++ and is available for multiple platforms.

The AdPlug library is affected by multiple remote buffer-overflow vulnerabilities. The library fails to properly bounds-check user-supplied input before copying it into insufficiently sized memory buffers.

The specific issues are identified as:
- A heap-based buffer-overflow vulnerability in the 'CcffLoader::load()' function located in the 'cff.cpp' source file. This issue is due to the function using user-supplied size values from CFF (BoomTracker 4.0) files without proper bounds-checking during memory copy operations.

- A heap-based buffer-overflow vulnerability in the 'CmtkLoader::load()' function located in the 'mtk.cpp' source file. This issue is due to the function using user-supplied size values from MTK (MPU-401 Trakker) files without proper bounds-checking during memory copy operations.

- A heap-based buffer-overflow vulnerability in the 'CdmoLoader::load()' function located in the 'dmo.cpp' source file. This issue is due to the function using user-supplied size values from DMO (Twin TrackPlayer) files without proper bounds-checking during memory copy operations.

- A stack-based buffer-overflow vulnerability in the 'CdtmLoader::load()' function located in the 'dtm.cpp' source file. This issue is due to the function using user-supplied size values from DTM (DeFy Adlib Tracker) files without proper bounds-checking during memory copy operations.

- A stack-based buffer-overflow vulnerability in the 'Cs3mPlayer::load()' function located in the 's3m.cpp' source file. This issue is due to the function using user-supplied size values from S3M (Screamtracker 3) files without proper bounds-checking during memory copy operations.

- A heap-based buffer-overflow vulnerability in the 'Cu6mPlayer::load()' function located in the 'u6m.cpp' source file. This issue is due to the function using user-supplied size values from U6M (Ultima 6 Music Format) files without proper bounds-checking during memory copy operations.

These issues allow remote attackers to execute arbitrary machine code in the context of the user running applications that use the affected library to open attacker-supplied malicious files.

The AdPlug library version 2.0 is vulnerable to these issues; previous versions may also be affected.

Affected Products:

  • AdPlug AdPlug 2.0
  • Audacious Audacious 1.0.0
  • Gentoo Linux

References:

Juniper Networks provides this content via a wide variety of sources and production methods. If notified of errors or omissions in the content of this page, Juniper Networks, at its discretion, will modify or remove the page or leave the content as is, depending on various factors including but not limited to the reputation and authority of the party providing the notification. Please use the contact information displayed elsewhere on this page to report any errors or omissions regarding the content on this page.