Summary
tar-framing rejects an ordinary-header numeric metadata field containing only
spaces.
The reproduction archive uses eight spaces for uid. It is
accepted by Rust tar, Tokio TAR, CPython tarfile, Go archive/tar, and
JavaScript tar-stream; all five expose the same empty regular member named
file.
Tested with tar-codec revision
1ac1199559a1b96f0f953ac99520ccc296503808.
Observed behavior
The archive is rejected with:
at byte 0: invalid tar uid field: found [32, 32, 32, 32, 32, 32, 32, 32]
Expected behavior
Consider treating a wholly-space ordinary metadata field as absent, analogous
to the existing compatibility treatment for wholly-NUL fields.
If the distinction is intentional, it would be useful to document it.
Impact
This is an interoperability issue, not an extraction vulnerability. The same
five-peer differential is observable for mode, gid, and mtime.
Summary
tar-framingrejects an ordinary-header numeric metadata field containing onlyspaces.
The reproduction archive uses eight spaces for
uid. It isaccepted by Rust
tar, Tokio TAR, CPythontarfile, Goarchive/tar, andJavaScript
tar-stream; all five expose the same empty regular member namedfile.Tested with tar-codec revision
1ac1199559a1b96f0f953ac99520ccc296503808.Observed behavior
The archive is rejected with:
Expected behavior
Consider treating a wholly-space ordinary metadata field as absent, analogous
to the existing compatibility treatment for wholly-NUL fields.
If the distinction is intentional, it would be useful to document it.
Impact
This is an interoperability issue, not an extraction vulnerability. The same
five-peer differential is observable for
mode,gid, andmtime.