Description (CNA)
async-tar is a tar archive reading/writing library for async Rust. Prior to version 0.6.1, async-tar mis-applies a buffered PAX size extension to an intermediary extension header (a GNU longname L, a GNU longlink K, or a PAX x/g header) instead of to the next file entry. POSIX requires a PAX extended-header record set to describe the next file entry, never an intervening extension header. Because poll_next_raw (src/archive.rs) threads the buffered PAX records into the size computation of whatever raw header it reads next — and that header can be an intermediary L — the stream cursor is advanced by an attacker-chosen amount when the L body is consumed. The parser then desyncs relative to a POSIX-correct tar parser (e.g. GNU tar), reading subsequent bytes at the wrong block boundary. This issue has been patched in version 0.6.1.
Affected (CNA)
| Vendor / product | Versions |
|---|---|
| dignifiedquire / async-tar | affected < 0.6.1 |
CWE
CWE-20, CWE-843
References
- https://github.com/dignifiedquire/async-tar/security/advisories/GHSA-35rm-7j9c-2f7m
- https://github.com/dignifiedquire/async-tar/releases/tag/v0.6.1
ADP enrichment
No English description supplied.