Closed Bug 1815801 (CVE-2023-25747) Opened 2 years ago Closed 2 years ago

Crash in [@ soundtouch::TDStretch::seekBestOverlapPositionFull]

Categories

(Core :: Audio/Video: Playback, defect)

Firefox 110
Unspecified
Android
defect

Tracking

()

RESOLVED FIXED
111 Branch
Tracking Status
firefox-esr102 --- unaffected
firefox109 --- unaffected
firefox110 + fixed
firefox111 + fixed

People

(Reporter: cpeterson, Assigned: padenot)

References

(Regression)

Details

(5 keywords, Whiteboard: [adv-main110.0.1+])

Crash Data

Attachments

(1 file)

Crash report: https://crash-stats.mozilla.org/report/index/6aea554a-9766-4292-ba38-07b6d0230208
This Android crash looks like a regression in Nightly 110.

I tentatively marked this as a sec bug because all the crash addresses are variations of jemalloc's UAF poison like 0xe5e5e5e5e5e5e5f5.

Reason: SIGSEGV / SEGV_MAPERR

Top 10 frames of crashing thread:

0  liblgpllibs.so  soundtouch::TDStretch::seekBestOverlapPositionFull  media/libsoundtouch/src/TDStretch.cpp:350
1  liblgpllibs.so  soundtouch::TDStretch::processSamples  media/libsoundtouch/src/TDStretch.cpp:661
2  liblgpllibs.so  soundtouch::SoundTouch::putSamples  media/libsoundtouch/src/SoundTouch.cpp
3  libxul.so  mozilla::AudioStream::GetTimeStretched  dom/media/AudioStream.cpp:546
3  libxul.so  mozilla::AudioStream::DataCallback  dom/media/AudioStream.cpp:623
3  libxul.so  mozilla::AudioStream::DataCallback_S  dom/media/AudioStream.h:319
4  libxul.so  passthrough_resampler<short>::fill  media/libcubeb/src/cubeb_resampler.cpp:111
5  libxul.so  aaudio_output_data_cb  media/libcubeb/src/cubeb_aaudio.cpp:719
6  libaaudio_internal.so  libaaudio_internal.so@0x22364  
7  libaaudio_internal.so  libaaudio_internal.so@0x2432c  

I found some other soundtouch crash signatures that have different stack traces, but they too look like UAF regressions starting in 110. Maybe they are all related?

[@ soundtouch::SoundTouch::setTempo]
[@ soundtouch::FIRFilter::evaluateFilterStereo]
[@ soundtouch::FIFOSampleBuffer::ensureCapacity]

Crash Signature: [@ soundtouch::TDStretch::seekBestOverlapPositionFull] → [@ soundtouch::TDStretch::seekBestOverlapPositionFull] [@ soundtouch::SoundTouch::setTempo] [@ soundtouch::FIRFilter::evaluateFilterStereo] [@ soundtouch::FIFOSampleBuffer::ensureCapacity]
Group: core-security → media-core-security

[Tracking Requested - why for this release]: use-after free regression on Android

The bug is linked to a topcrash signature, which matches the following criterion:

  • Top 10 AArch64 and ARM crashes on release

:jimm, could you consider increasing the severity of this top-crash bug?

For more information, please visit auto_nag documentation.

Flags: needinfo?(jmathies)
Keywords: topcrash

The bug is marked as tracked for firefox110 (release) and tracked for firefox111 (beta). We have limited time to fix this, the soft freeze is in 14 days. However, the bug still isn't assigned.

:jimm, could you please find an assignee for this tracked bug? If you disagree with the tracking decision, please talk with the release managers.

For more information, please visit auto_nag documentation.

Flags: needinfo?(jmathies)

Paul, any ideas? It looked like you touched this TDStretch file last. Thanks.

Flags: needinfo?(padenot)
Flags: needinfo?(pascalc)
Flags: needinfo?(padenot)
Flags: needinfo?(jmathies)
Flags: needinfo?(dmeehan)
Depends on: 1812120

(In reply to Paul Adenot (:padenot) from comment #6)

https://bugzilla.mozilla.org/show_bug.cgi?id=1812120#c12 wasn't handled, it seems like.

My comment mentioned it was too late for 110 and that I would evaluate for the planned dot release.

Flags: needinfo?(pascalc)

I guess that explains why it hasn't shown up on 111 beta.

Flags: needinfo?(dmeehan)

:cpeterson, since this bug is a regression, could you fill (if possible) the regressed_by field?
For more information, please visit auto_nag documentation.

Flags: needinfo?(cpeterson)
Severity: -- → S3
Crash Signature: [@ soundtouch::TDStretch::seekBestOverlapPositionFull] [@ soundtouch::SoundTouch::setTempo] [@ soundtouch::FIRFilter::evaluateFilterStereo] [@ soundtouch::FIFOSampleBuffer::ensureCapacity] → [@ soundtouch::TDStretch::seekBestOverlapPositionFull] [@ soundtouch::SoundTouch::setTempo] [@ soundtouch::FIRFilter::evaluateFilterStereo] [@ soundtouch::FIFOSampleBuffer::ensureCapacity] [@ soundtouch::InterpolateLinearInteger::transposeStereo]
No longer depends on: 1812120
Flags: needinfo?(cpeterson)
Regressed by: 1812120
Status: NEW → RESOLVED
Closed: 2 years ago
Resolution: --- → FIXED
Assignee: nobody → padenot
Group: media-core-security → core-security-release
Depends on: 1812120
No longer regressed by: 1812120
Target Milestone: --- → 111 Branch
Regressed by: 1809185
Alias: CVE-2023-25747
Whiteboard: [adv-main110.0.1+]
Attached file advisory.txt
QA Whiteboard: [post-critsmash-triage]
Group: core-security-release
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: