Apache Commons Codec GitIdentifiers collide on NUL entry names
Apache rates the flaw low; Codec 1.22.0 before 1.23.0 and one earlier commit range are affected.
NUL-byte Git/SWHID collision in Apache Commons Codec
Apache Commons Codec's GitIdentifiers class did not reject NUL bytes in tree entry names. Git uses a NUL to end each name, so a crafted name can make one tree serialize to the same bytes as another, giving two different directory trees the same Git tree identifier or SWHID. Only applications that build trees from names supplied outside the file system, such as ZIP entries or direct API input, are exposed. Trees walked from ordinary file systems are not affected.
What to do: Upgrade Apache Commons Codec to 1.23.0, which rejects NUL bytes in tree entry names.
| Product | Affected | Fixed in |
|---|---|---|
| Apache Commons Codec | from 1.22.0 before 1.23.0 | 1.23.0 |
Order-of-magnitude estimate by the model from install counts, market share and public scan data it knows; verify before quoting.
The GitIdentifiers class in Apache Commons Codec did not reject NUL bytes in tree entry names. Because Git uses a NUL byte to mark the end of each entry name in a tree object, a crafted name could make one tree serialize to the same bytes as a different tree. Two different directory trees could then receive the same Git tree identifier or SWHID. The impact is limited: common file systems do not allow NUL bytes in file names, so trees built by walking a file system are not affected. Only applications that build trees from names supplied by other sources, such as entries of archive formats that permit NUL bytes in names (e.g. ZIP) or names passed directly to the API, are exposed. This issue affects Apache Commons Codec: from 1.22.0 before 1.23.0. Users are recommended to upgrade to version 1.23.0, which fixes the issue.
Apache rates the flaw low; Codec 1.22.0 before 1.23.0 and one earlier commit range are affected.
Today 1.5K readers · 2.4K views · 768 reads · all time 189K views