I stubbed my toe on this link today:
https://blog.fuzzing-project.org/52-Multiple-vulnerabilities-in-RPM-and-a-rant.html
So I ran the 5 rpm’s posted at the link through rpm in CVS:
$ ../rpm --version
lt-rpm (RPM) 5.4.18
(where afaik *.rpm package reading is identical to released rpm-5.4.17).
The results are below: all PASS.
Disclaimer: this post doesn’t claim anything other than what is written.
73 de Jeff
================================================
--> /X/src/wdj54/rpm --rpmpopt=/X/src/wdj54/rpmpopt
--macros=/X/src/wdj54/macros/macros:/X/src/wdj54/tests/macros -qvvp
FUZZRPMS/rpm-heap-oob-read-headerVerifyInfo.rpm
D: pool fd: created size 392 limit -1 flags 0
D: pool lua: created size 64 limit -1 flags 0
D: pool ts: created size 1200 limit -1 flags 0
D: pool gi: created size 176 limit -1 flags 0
D: pool dig: created size 424 limit -1 flags 0
error: FUZZRPMS/rpm-heap-oob-read-headerVerifyInfo.rpm: Signature: sigh tags:
BAD, no. of tags(0) out of range
D: pool iob: created size 48 limit -1 flags 0
D: === #2 rc(1) adding 0 args from manifest:
FUZZRPMS/rpm-heap-oob-read-headerVerifyInfo.rpm
D: pool tsi: created size 48 limit -1 flags 0
D: pool gi: reused 0, alloc'd 1, free'd 1 items.
D: pool tsi: reused 3, alloc'd 1, free'd 1 items.
D: pool ts: reused 0, alloc'd 1, free'd 1 items.
D: pool lua: reused 0, alloc'd 1, free'd 1 items.
D: pool iob: reused 0, alloc'd 1, free'd 1 items.
D: pool dig: reused 0, alloc'd 1, free'd 1 items.
D: pool fd: reused 6, alloc'd 2, free'd 2 items.
D: exit code: 0
--> /X/src/wdj54/rpm --rpmpopt=/X/src/wdj54/rpmpopt
--macros=/X/src/wdj54/macros/macros:/X/src/wdj54/tests/macros -qvvp
FUZZRPMS/rpm-heap-oob-read-rpmtdGetNumber.rpm
D: pool fd: created size 392 limit -1 flags 0
D: pool lua: created size 64 limit -1 flags 0
D: pool ts: created size 1200 limit -1 flags 0
D: pool gi: created size 176 limit -1 flags 0
D: pool dig: created size 424 limit -1 flags 0
error: FUZZRPMS/rpm-heap-oob-read-rpmtdGetNumber.rpm: Signature: sigh tag[0]:
BAD, tag 2147483917 type 6 offset 0 count 1
D: pool iob: created size 48 limit -1 flags 0
D: === #2 rc(1) adding 0 args from manifest:
FUZZRPMS/rpm-heap-oob-read-rpmtdGetNumber.rpm
D: pool tsi: created size 48 limit -1 flags 0
D: pool gi: reused 0, alloc'd 1, free'd 1 items.
D: pool tsi: reused 3, alloc'd 1, free'd 1 items.
D: pool ts: reused 0, alloc'd 1, free'd 1 items.
D: pool lua: reused 0, alloc'd 1, free'd 1 items.
D: pool iob: reused 0, alloc'd 1, free'd 1 items.
D: pool dig: reused 0, alloc'd 1, free'd 1 items.
D: pool fd: reused 6, alloc'd 2, free'd 2 items.
D: exit code: 0
--> /X/src/wdj54/rpm --rpmpopt=/X/src/wdj54/rpmpopt
--macros=/X/src/wdj54/macros/macros:/X/src/wdj54/tests/macros -qvvp
FUZZRPMS/rpm-nullptr-rpmtdFormat.rpm
D: pool fd: created size 392 limit -1 flags 0
D: pool lua: created size 64 limit -1 flags 0
D: pool ts: created size 1200 limit -1 flags 0
D: pool gi: created size 176 limit -1 flags 0
D: pool dig: created size 424 limit -1 flags 0
error: FUZZRPMS/rpm-nullptr-rpmtdFormat.rpm: Signature: day[0]: BAD, tag
808464432 type 7 offset 48 count 16
D: pool iob: created size 48 limit -1 flags 0
D: === #2 rc(1) adding 0 args from manifest:
FUZZRPMS/rpm-nullptr-rpmtdFormat.rpm
D: pool tsi: created size 48 limit -1 flags 0
D: pool gi: reused 0, alloc'd 1, free'd 1 items.
D: pool tsi: reused 3, alloc'd 1, free'd 1 items.
D: pool ts: reused 0, alloc'd 1, free'd 1 items.
D: pool lua: reused 0, alloc'd 1, free'd 1 items.
D: pool iob: reused 0, alloc'd 1, free'd 1 items.
D: pool dig: reused 0, alloc'd 1, free'd 1 items.
D: pool fd: reused 6, alloc'd 2, free'd 2 items.
D: exit code: 0
--> /X/src/wdj54/rpm --rpmpopt=/X/src/wdj54/rpmpopt
--macros=/X/src/wdj54/macros/macros:/X/src/wdj54/tests/macros -qvvp
FUZZRPMS/rpm-segfault-headerVerifyInfo.rpm
D: pool fd: created size 392 limit -1 flags 0
D: pool lua: created size 64 limit -1 flags 0
D: pool ts: created size 1200 limit -1 flags 0
D: pool gi: created size 176 limit -1 flags 0
D: pool dig: created size 424 limit -1 flags 0
error: FUZZRPMS/rpm-segfault-headerVerifyInfo.rpm: Signature: day[0]: BAD, tag
808464432 type 7 offset 48 count 16
D: pool iob: created size 48 limit -1 flags 0
D: === #2 rc(1) adding 0 args from manifest:
FUZZRPMS/rpm-segfault-headerVerifyInfo.rpm
D: pool tsi: created size 48 limit -1 flags 0
D: pool gi: reused 0, alloc'd 1, free'd 1 items.
D: pool tsi: reused 3, alloc'd 1, free'd 1 items.
D: pool ts: reused 0, alloc'd 1, free'd 1 items.
D: pool lua: reused 0, alloc'd 1, free'd 1 items.
D: pool iob: reused 0, alloc'd 1, free'd 1 items.
D: pool dig: reused 0, alloc'd 1, free'd 1 items.
D: pool fd: reused 6, alloc'd 2, free'd 2 items.
D: exit code: 0
--> /X/src/wdj54/rpm --rpmpopt=/X/src/wdj54/rpmpopt
--macros=/X/src/wdj54/macros/macros:/X/src/wdj54/tests/macros -qvvp
FUZZRPMS/rpm-stackoverflow-glob.rpm
D: pool fd: created size 392 limit -1 flags 0
D: pool lua: created size 64 limit -1 flags 0
D: pool ts: created size 1200 limit -1 flags 0
D: pool gi: created size 176 limit -1 flags 0
D: pool dig: created size 424 limit -1 flags 0
D: pool iob: created size 48 limit -1 flags 0
D: === #5 rc(1) adding 0 args from manifest: FUZZRPMS/rpm-stackoverflow-glob.rpm
D: pool tsi: created size 48 limit -1 flags 0
D: pool gi: reused 0, alloc'd 1, free'd 1 items.
D: pool tsi: reused 3, alloc'd 1, free'd 1 items.
D: pool ts: reused 0, alloc'd 1, free'd 1 items.
D: pool lua: reused 0, alloc'd 1, free'd 1 items.
D: pool iob: reused 0, alloc'd 1, free'd 1 items.
D: pool dig: reused 0, alloc'd 1, free'd 1 items.
D: pool fd: reused 6, alloc'd 2, free'd 2 items.
D: exit code: 0