CVE-2017-7585
Medium · 5.5CVSS
5.5
EPSS
1.5%
Published
Apr 7, 2017
CISA due date
—
Cloudanix analysis
A bug in audio handling software can make programs crash when they try to open certain specially made music files.
- Exploitation
- Requires User Interaction
- Attacker needs
- User Interaction
- Complexity
- Low
- Impact
- Denial Of Service
- Component
- Library
- Class
- Memory Corruption
- Remediation
- Upgrade
- Effort
- Medium
- Patch risk
- Low
What it actually does
Stack-based buffer overflow triggered in flac_buffer_copy() within flac.c when processing a malformed FLAC audio stream, leading to memory corruption.
Why it matters to the business
Applications that decode FLAC files may crash, causing denial of service for media processing pipelines, audio tools, and any downstream products that embed the vulnerable library; the issue is old with low exploit likelihood so operational urgency is low.
How an attack unfolds
An attacker crafts a specially malformed FLAC file that overflows the stack buffer inside flac_buffer_copy when the file is opened by any application linking against the vulnerable libsndfile; the overflow can be triggered locally with no authentication or privileges required beyond opening the file.
How to fix it
Upgrade libsndfile to a build containing commit 60b234301adf258786d8b90be5c1d437fc8799e0 or later release 1.0.28; upgrade Bitnami Redmine to version 4.0.9 or newer that bundles a fixed libsndfile.
How to confirm the fix worked
Confirm installed libsndfile version is at least 1.0.28 or contains the referenced commit; attempt to open a known-good test FLAC with the patched library and verify no crash occurs under the same conditions that previously triggered the overflow.
Typical attack path
- Generate a malicious FLAC file that triggers the buffer overflow in flac_buffer_copy()
- Deliver the file to a target system via email, download, or shared storage
- Victim application or service opens the file using the vulnerable libsndfile library
- Overflow occurs resulting in application crash or denial of service
How to detect it
Monitor application logs and crash reports for segmentation faults or stack corruption when processing FLAC files; look for repeated crashes in processes that call into libsndfile flac handling routines.
- flac_buffer_copy
- flac.c
What your security team should do
- Inventory all systems and containers that include libsndfile or Bitnami Redmine and prioritize patching those reachable by untrusted audio files
- Update to the exact fixed versions listed (libsndfile commit 60b2343 or Redmine 4.0.9)
- Add FLAC file sanitization or sandboxing for any high-risk media ingestion workflows until patches are applied
The record
In libsndfile before 1.0.28, an error in the "flac_buffer_copy()" function (flac.c) can be exploited to cause a stack-based buffer overflow via a specially crafted FLAC file.
Affected packages
| Ecosystem | Package | Introduced | Fixed |
|---|---|---|---|
| Alpine:v3.10 | libsndfile | 0 | 1.0.28-r0 |
| Alpine:v3.11 | libsndfile | 0 | 1.0.28-r0 |
| Alpine:v3.12 | libsndfile | 0 | 1.0.28-r0 |
| Alpine:v3.13 | libsndfile | 0 | 1.0.28-r0 |
| Alpine:v3.14 | libsndfile | 0 | 1.0.28-r0 |
| Alpine:v3.15 | libsndfile | 0 | 1.0.28-r0 |
| Alpine:v3.16 | libsndfile | 0 | 1.0.28-r0 |
| Alpine:v3.17 | libsndfile | 0 | 1.0.28-r0 |
| Alpine:v3.18 | libsndfile | 0 | 1.0.28-r0 |
| Alpine:v3.19 | libsndfile | 0 | 1.0.28-r0 |
| Alpine:v3.2 | libsndfile | 0 | 1.0.28-r0 |
| Alpine:v3.20 | libsndfile | 0 | 1.0.28-r0 |
| Alpine:v3.21 | libsndfile | 0 | 1.0.28-r0 |
| Alpine:v3.22 | libsndfile | 0 | 1.0.28-r0 |
| Alpine:v3.3 | libsndfile | 0 | 1.0.28-r0 |
| Alpine:v3.4 | libsndfile | 0 | 1.0.28-r0 |
| Alpine:v3.5 | libsndfile | 0 | 1.0.28-r0 |
| Alpine:v3.6 | libsndfile | 0 | 1.0.28-r0 |
| Alpine:v3.7 | libsndfile | 0 | 1.0.28-r0 |
| Alpine:v3.8 | libsndfile | 0 | 1.0.28-r0 |
| Alpine:v3.9 | libsndfile | 0 | 1.0.28-r0 |
| Debian:11 | libsndfile | 0 | 1.0.27-2 |
| Debian:12 | libsndfile | 0 | 1.0.27-2 |
| Debian:13 | libsndfile | 0 | 1.0.27-2 |
| Debian:14 | libsndfile | 0 | 1.0.27-2 |
| Debian:7 | libsndfile | 0 | 1.0.25-9.1+deb7u1 |
| Mageia:5 | libsndfile | 0 | 1.0.25-9.2.mga5 |
| SUSE:Linux Enterprise Desktop 12 SP1 | libsndfile | 0 | 1.0.25-28.1 |
| SUSE:Linux Enterprise Desktop 12 SP1 | libsndfile | 0 | 1.0.25-35.1 |
| SUSE:Linux Enterprise Desktop 12 SP2 | libsndfile | 0 | 1.0.25-28.1 |
| SUSE:Linux Enterprise Desktop 12 SP2 | libsndfile | 0 | 1.0.25-35.1 |
| SUSE:Linux Enterprise Server 11 SP4 | libsndfile | 0 | 1.0.20-2.13.1 |
| SUSE:Linux Enterprise Server 11 SP4 | libsndfile | 0 | 1.0.20-2.18.1 |
| SUSE:Linux Enterprise Server 12 SP1 | libsndfile | 0 | 1.0.25-28.1 |
| SUSE:Linux Enterprise Server 12 SP1 | libsndfile | 0 | 1.0.25-35.1 |
| SUSE:Linux Enterprise Server 12 SP2 | libsndfile | 0 | 1.0.25-28.1 |
| SUSE:Linux Enterprise Server 12 SP2 | libsndfile | 0 | 1.0.25-35.1 |
| SUSE:Linux Enterprise Server for Raspberry Pi 12 SP2 | libsndfile | 0 | 1.0.25-28.1 |
| SUSE:Linux Enterprise Server for Raspberry Pi 12 SP2 | libsndfile | 0 | 1.0.25-35.1 |
| SUSE:Linux Enterprise Server for SAP Applications 11 SP4 | libsndfile | 0 | 1.0.20-2.13.1 |
| SUSE:Linux Enterprise Server for SAP Applications 11 SP4 | libsndfile | 0 | 1.0.20-2.18.1 |
| SUSE:Linux Enterprise Server for SAP Applications 12 SP1 | libsndfile | 0 | 1.0.25-28.1 |
| SUSE:Linux Enterprise Server for SAP Applications 12 SP1 | libsndfile | 0 | 1.0.25-35.1 |
| SUSE:Linux Enterprise Server for SAP Applications 12 SP2 | libsndfile | 0 | 1.0.25-28.1 |
| SUSE:Linux Enterprise Server for SAP Applications 12 SP2 | libsndfile | 0 | 1.0.25-35.1 |
| SUSE:Linux Enterprise Software Development Kit 11 SP4 | libsndfile | 0 | 1.0.20-2.13.1 |
| SUSE:Linux Enterprise Software Development Kit 11 SP4 | libsndfile | 0 | 1.0.20-2.18.1 |
| SUSE:Linux Enterprise Software Development Kit 12 SP1 | libsndfile | 0 | 1.0.25-28.1 |
| SUSE:Linux Enterprise Software Development Kit 12 SP1 | libsndfile | 0 | 1.0.25-35.1 |
| SUSE:Linux Enterprise Software Development Kit 12 SP2 | libsndfile | 0 | 1.0.25-28.1 |
| SUSE:Linux Enterprise Software Development Kit 12 SP2 | libsndfile | 0 | 1.0.25-35.1 |
| Ubuntu:14.04:LTS | libsndfile | 0 | 1.0.25-7ubuntu2.2 |
| Ubuntu:16.04:LTS | libsndfile | 0 | 1.0.25-10ubuntu0.16.04.1 |
| openSUSE:Tumbleweed | libsndfile | 0 | 1.0.31-2.2 |
Related vulnerabilities
- CVE-2017-12562 Heap-based Buffer Overflow in the psf_binheader_writef function in common.c in libsndfile… Also affects libsndfile
- CVE-2024-50612 libsndfile through 1.2.2 has an ogg_vorbis.c vorbis_analysis_wrote out-of-bounds read. Also affects libsndfile
- CVE-2024-50613 libsndfile through 1.2.2 has a reachable assertion, that may lead to application exit, in… Also affects libsndfile
- CVE-2022-33065 Multiple signed integers overflow in function au_read_header in src/au.c and in functions… Also affects libsndfile
- CVE-2021-4156 An out-of-bounds read flaw was found in libsndfile's FLAC codec functionality. Also affects libsndfile
- CVE-2017-14245 An out of bounds read in the function d2alaw_array() in alaw.c of libsndfile 1.0.28 may… Also affects libsndfile
- CVE-2015-7805 Heap-based buffer overflow in libsndfile 1.0.25 allows remote attackers to have… Also affects libsndfile
- CVE-2014-9496 The sd2_parse_rsrc_fork function in sd2.c in libsndfile allows attackers to have… Also affects libsndfile