[Bug 2093024] Re: zip crashes when using options -T and -TT
Albert
2093024 at bugs.launchpad.net
Sun Jan 5 16:18:03 UTC 2025
Actually, I spent some time to figure out what is wrong. Looks like
program name in -TT command does not matter - crash is always present on
my host (Ubuntu 24.04.1 LTS, zip 3.0-13ubuntu0.1).
Program crashes inside check_zipfile function:
```
if (here) {
...
} else {
/* No {} so append temp name to end */
strcpy(cmd, unzip_path);
strcat(cmd, " ");
# ifdef UNIX
strcat(cmd, "'"); /* accept space or $ in name */
strcat(cmd, zipname);
strcat(cmd, "'"); <- this function causes a program crash
# else
strcat(cmd, zipname);
# endif
}
```
at the moment of call to the "faulty" strcat gdb shows:
```
0x555555575f25 <check_zipfile.isra+453> lea rdi, [r12 + r15 + 2]
0x555555575f2a <check_zipfile.isra+458> mov ecx, 1
0x555555575f2f <check_zipfile.isra+463> mov rsi, r14
0x555555575f32 <check_zipfile.isra+466> add rdi, rbx
0x555555575f35 <check_zipfile.isra+469> mov edx, 2
► 0x555555575f3a <check_zipfile.isra+474> call __memcpy_chk at plt
dstpp: 0x5555555d896e ◂— 0
srcpp: 0x555555578565 ◂— 0x32252d6434250027 /* "'" */
len: 2
dstlen: 1
```
`__memcpy_chk` will fail if dstlen <= len and that's expected .
What is unexpected, though, is that the 3rd (rdx register) and 4th (rcx
register) parameters are set to 2 and 1, causing this code path to
always fail. Not sure why such code was generated.
--
You received this bug notification because you are a member of Ubuntu
Foundations Bugs, which is subscribed to zip in Ubuntu.
https://bugs.launchpad.net/bugs/2093024
Title:
zip crashes when using options -T and -TT
Status in zip package in Ubuntu:
New
Bug description:
Running zip command with -T -TT arguments causes zip process to crash
due to buffer overflow. See below:
$ zip a.zip /etc/hosts -T -TT "ls"
adding: etc/hosts (deflated 35%)
*** buffer overflow detected ***: terminated
zip error: Interrupted (aborting)
free(): double free detected in tcache 2
$ lsb_release -rd
OS: Ubuntu 24.04.1 LTS
$ apt-cache policy zip
zip:
Installed: 3.0-13ubuntu0.1
Candidate: 3.0-13ubuntu0.1
Version table:
*** 3.0-13ubuntu0.1 500
500 http://pl.archive.ubuntu.com/ubuntu noble-updates/main amd64 Packages
100 /var/lib/dpkg/status
3.0-13build1 500
500 http://pl.archive.ubuntu.com/ubuntu noble/main amd64 Packages
In addition to that I tested various docker images - here are the results:
- ubuntu:24.10 at sha256:102bc1874fdb136fc2d218473f03cf84135cb7496fefdb9c026c0f553cfe1b6d - zip 3.0-14ubuntu0.1 - issue occurs
- ubuntu:24.04 at sha256:80dd3c3b9c6cecb9f1667e9290b3bc61b78c2678c02cbdae5f0fea92cc6734ab - zip 3.0-13ubuntu0.1 - issue occurs
- ubuntu:20.04 at sha256:8e5c4f0285ecbb4ead070431d29b576a530d3166df73ec44affc1cd27555141b - zip 3.0-11build1 - issue does not occur
- debian:bookworm at sha256:b877a1a3fdf02469440f1768cf69c9771338a875b7add5e80c45b756c92ac20a - zip 3.0-13 - issue does not occur
To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/zip/+bug/2093024/+subscriptions
More information about the foundations-bugs
mailing list