Skip to content
GitLab
Explore
Sign in
Register
Primary navigation
Search or go to…
Project
Opus
Manage
Activity
Members
Labels
Plan
Issues
Issue boards
Milestones
Wiki
Code
Merge requests
Repository
Branches
Commits
Tags
Repository graph
Compare revisions
Build
Pipelines
Jobs
Pipeline schedules
Artifacts
Deploy
Releases
Container Registry
Model registry
Operate
Environments
Monitor
Incidents
Analyze
Value stream analytics
Contributor analytics
CI/CD analytics
Repository analytics
Model experiments
Help
Help
Support
GitLab documentation
Compare GitLab plans
Community forum
Contribute to GitLab
Provide feedback
Terms and privacy
Keyboard shortcuts
?
Snippets
Groups
Projects
Show more breadcrumbs
Xiph.Org
Opus
Commits
ca3cb323
Verified
Commit
ca3cb323
authored
7 years ago
by
Jean-Marc Valin
Browse files
Options
Downloads
Patches
Plain Diff
More fixes for IESG
parent
d772eb96
No related branches found
Branches containing commit
No related tags found
Tags containing commit
No related merge requests found
Changes
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
doc/draft-ietf-codec-opus-update.xml
+10
-23
10 additions, 23 deletions
doc/draft-ietf-codec-opus-update.xml
with
10 additions
and
23 deletions
doc/draft-ietf-codec-opus-update.xml
+
10
−
23
View file @
ca3cb323
...
...
@@ -10,7 +10,7 @@
<?rfc inline="yes"?>
<?rfc compact="yes"?>
<?rfc subcompact="no"?>
<rfc
category=
"std"
docName=
"draft-ietf-codec-opus-update-0
9
"
<rfc
category=
"std"
docName=
"draft-ietf-codec-opus-update-
1
0"
ipr=
"trust200902"
updates=
"6716"
>
<front>
<title
abbrev=
"Opus Update"
>
Updates to the Opus Audio Codec
</title>
...
...
@@ -47,11 +47,11 @@
<date
day=
"1
7
"
month=
"August"
year=
"2017"
/>
<date
day=
"
2
1"
month=
"August"
year=
"2017"
/>
<abstract>
<t>
This document addresses minor issues that were found in the specification
of the Opus audio codec in RFC 6716. It updates the nor
n
ative decoder implementation
of the Opus audio codec in RFC 6716. It updates the nor
m
ative decoder implementation
included in the appendix of RFC 6716. The changes fixes real and potential security-related
issues, as well minor quality-related issues.
</t>
</abstract>
...
...
@@ -174,11 +174,6 @@
data stored in it was actually twice the input batch size
(nSamplesIn
<<
1).
</t>
</list></t>
<t>
The allocated buffers involved (buf and S->sFIR) are actually larger than they need to be for
the batch size used, so no out-of-bounds read or write is possible. Therefore the bug cannot be
exploited.
</t>
<t>
The code can be fixed by applying the following changes to line 78 of silk/resampler_private_IIR_FIR.c:
</t>
<figure>
...
...
@@ -245,9 +240,8 @@ RESAMPLER_ORDER_FIR_12 * sizeof( opus_int16 ) );
<t>
It was discovered through decoder fuzzing that some bitstreams could produce
integer values exceeding 32-bits in LPC_inverse_pred_gain_QA(), causing
a wrap-around. Although the authors are not aware of any way to exploit the bug,
the C standard considers
the behavior as undefined. The following patch to line 87 of silk/LPC_inv_pred_gain.c
a wrap-around. The C standard considers
this behavior as undefined. The following patch to line 87 of silk/LPC_inv_pred_gain.c
detects values that do not fit in a 32-bit integer and considers the corresponding filters unstable:
</t>
<figure>
...
...
@@ -483,18 +477,11 @@ fd3d3a7b0dfbdab98d37ed9aa04b659b9fefbd18 testvector11m.dec
reference implementation in
<xref
target=
"RFC6716"
>
RFC 6716
</xref>
: CVE-2013-0899
<eref
target=
"https://nvd.nist.gov/vuln/detail/CVE-2013-0899"
/>
and CVE-2017-0381
<eref
target=
"https://nvd.nist.gov/vuln/detail/CVE-2017-0381"
/>
.
CVE-2013-0899 is fixed by
<xref
target=
"padding"
/>
and
could theoretically cause an information leak, but the
leaked information would at the very least go through the decoder process before
being accessible to the attacker. Also, the bug can only be triggered by Opus packets
at least 24 MB in size. CVE-2017-0381 is fixed by Section 7 and can only result in a 16-bit
out-of-bounds read to a fixed location 256 bytes before a constant
table. That location would normally be part of an executable's read-only
data segment, but if that is not the case, the bug could at worst
results in either a crash or the leakage of 16 bits of information from
that fixed memory location (if the attacker has access to the decoded
output). Despite the claims of the CVE, the bug cannot results in
arbitrary code execution.
CVE- 2013-0899 theoretically could have caused an information leak. The leaked
information would have gone through the decoder process before being accessible
to the attacker. It is fixed by
<xref
target=
"padding"
/>
.
CVE-2017-0381 could have resulted in a 16-bit out-of-bounds read from a fixed
location. It is fixed in
<xref
target=
"lsf_overflow"
/>
.
Beyond the two fixed CVEs, this document adds no new security considerations on top of
<xref
target=
"RFC6716"
>
RFC 6716
</xref>
.
</t>
...
...
This diff is collapsed.
Click to expand it.
Preview
0%
Loading
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Save comment
Cancel
Please
register
or
sign in
to comment