Bug#769606: Overflow a2p utility

up201407890 at alunos.dcc.fc.up.pt up201407890 at alunos.dcc.fc.up.pt
Fri Nov 14 22:55:46 UTC 2014


Package: perl
Version: 5


Hello. My name is Federico Manuel Bento, and i have found what it  
_appears_ to be a buffer overflow on the a2p (awk2perl)
utility. It comes by default on several different systems.

Tested on Fedora 20, Fedora 19, Debian, and works probably on every  
UNIX-likes including BSD's, AIX, etc.

Eg:

[saken at zippy ~]$ python -c "print 'A' * 2048" | a2p >/dev/null
[saken at zippy ~]$ python -c "print 'A' * 2049" | a2p >/dev/null
[saken at zippy ~]$ python -c "print 'A' * 2050" | a2p >/dev/null
Segmentation fault

OR

[saken at zippy ~]$ python -c "print 'A'*3000" > lel
[saken at zippy ~]$ gdb a2p
(gdb) r lel
Starting program: /usr/bin/a2p lel
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib64/libthread_db.so.1".

Program received signal SIGSEGV, Segmentation fault.
0x000000000040b7c5 in yyparse ()
(gdb) info reg
rax            0x4141414141414141        8680820740569200760
rbx            0x1        1
rcx            0x0        0
rdx            0x67d724        6805284
rsi            0x67dab0        6806192
rdi            0x41414141        2021161080
rbp            0x6        0x6
rsp            0x7fffffffe1d0        0x7fffffffe1d0
r8             0x8        8
r9             0x5f        95
r10            0x0        0
r11            0x38e0174b60        244277791584
r12            0x6        6
r13            0x0        0
r14            0x0        0
r15            0x0        0
rip            0x40b7c5        0x40b7c5 <yyparse+757>
eflags         0x10206        [ PF IF RF ]
cs             0x33        51
ss             0x2b        43
ds             0x0        0
es             0x0        0
fs             0x0        0
gs             0x0        0

[saken at zippy ~]$ uname -a
Linux zippy 3.2.0-4-amd64 #1 SMP Debian 3.2.63-2 x86_64 GNU/Linux
[saken at zippy ~]$ dpkg -s libc6 | grep ^Version
Version 2.13-38+deb7u6

----------------------------------------------------------------
This message was sent using IMP, the Internet Messaging Program.




More information about the Perl-maintainers mailing list