Package: outguess
Version: 1:0.4-2
Severity: important

Hello,

When trying to run OutGuess on Debian 12, I get a "stack smashing detected" 
error message and the program is aborted (SIGABRT).
This appears to happen for all JPEG images, i.e. it is not triggered by a 
certain image.

Steps to reproduce:

$ wget -q 
https://upload.wikimedia.org/wikipedia/commons/3/3f/JPEG_example_flower.jpg
$ echo msg1 > msg1.txt
$ echo msg2 > msg2.txt
$ outguess -k "key1" -d msg1.txt -E -K "key2" -D msg2.txt -p 100 
JPEG_example_flower.jpg JPEG_example_flower.steg.jpg
Initialize encoding/decoding tables
Reading JPEG_example_flower.jpg....
JPEG compression quality set to 100
Extracting usable bits:   70325 bits
Correctable message size: 17434 bits, 24.79%
Encoded 'msg1.txt': 40 bits, 5 bytes
Finding best embedding...
    0:    33(45.8%)[82.5%], bias    28(0.85), saved:    -1, total:  0.05%
    1:    28(38.9%)[70.0%], bias    25(0.89), saved:    -1, total:  0.04%
    6:    30(42.3%)[75.0%], bias    19(0.63), saved:    -1, total:  0.04%
   11:    28(38.9%)[70.0%], bias    13(0.46), saved:    -1, total:  0.04%
11, 41: Embedding data: 40 in 70325
Bits embedded: 72, changed: 28(38.9%)[70.0%], bias: 13, tot: 68673, skip: 68601
Encoded 'msg2.txt' with ECC: 96 bits, 12 bytes
Finding best embedding...
*** stack smashing detected ***: terminated
Aborted

A GDB session shows the following (nothing new):

$ gdb --args outguess -k "key1" -d msg1.txt -E -K "key2" -D msg2.txt -p 100 
JPEG_example_flower.jpg JPEG_example_flower.steg.jpg
GNU gdb (Debian 13.1-3) 13.1
Copyright (C) 2023 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.
Type "show copying" and "show warranty" for details.
This GDB was configured as "x86_64-linux-gnu".
Type "show configuration" for configuration details.
For bug reporting instructions, please see:
<https://www.gnu.org/software/gdb/bugs/>.
Find the GDB manual and other documentation resources online at:
    <http://www.gnu.org/software/gdb/documentation/>.

For help, type "help".
Type "apropos word" to search for commands related to "word"...
Reading symbols from outguess...
(No debugging symbols found in outguess)
(gdb) run
Starting program: /usr/bin/outguess -k key1 -d msg1.txt -E -K key2 -D msg2.txt 
-p 100 JPEG_example_flower.jpg JPEG_example_flower.steg.jpg
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1".
Initialize encoding/decoding tables
Reading JPEG_example_flower.jpg....
JPEG compression quality set to 100
Extracting usable bits:   70325 bits
Correctable message size: 17434 bits, 24.79%
Encoded 'msg1.txt': 40 bits, 5 bytes
Finding best embedding...
    0:    33(45.8%)[82.5%], bias    28(0.85), saved:    -1, total:  0.05%
    1:    28(38.9%)[70.0%], bias    25(0.89), saved:    -1, total:  0.04%
    6:    30(42.3%)[75.0%], bias    19(0.63), saved:    -1, total:  0.04%
   11:    28(38.9%)[70.0%], bias    13(0.46), saved:    -1, total:  0.04%
11, 41: Embedding data: 40 in 70325
Bits embedded: 72, changed: 28(38.9%)[70.0%], bias: 13, tot: 68673, skip: 68601
Encoded 'msg2.txt' with ECC: 96 bits, 12 bytes
Finding best embedding...
*** stack smashing detected ***: terminated

Program received signal SIGABRT, Aborted.
__pthread_kill_implementation (threadid=<optimized out>, signo=signo@entry=6, 
no_tid=no_tid@entry=0) at ./nptl/pthread_kill.c:44
44      ./nptl/pthread_kill.c: No such file or directory.
(gdb) bt full
#0  __pthread_kill_implementation (threadid=<optimized out>, 
signo=signo@entry=6, no_tid=no_tid@entry=0) at ./nptl/pthread_kill.c:44
        tid = <optimized out>
        ret = 0
        pd = <optimized out>
        old_mask = {__val = {0}}
        ret = <optimized out>
#1  0x00007ffff7d83d2f in __pthread_kill_internal (signo=6, threadid=<optimized 
out>) at ./nptl/pthread_kill.c:78
No locals.
#2  0x00007ffff7d34ef2 in __GI_raise (sig=sig@entry=6) at 
../sysdeps/posix/raise.c:26
        ret = <optimized out>
#3  0x00007ffff7d1f472 in __GI_abort () at ./stdlib/abort.c:79
        save_stage = 1
        act = {__sigaction_handler = {sa_handler = 0x20, sa_sigaction = 0x20}, 
sa_mask = {__val = {140737351587994, 17179869190, 8589934656, 140737488344528, 
8589939592, 6848, 93824992358358, 1431883968, 1, 1706640, 0, 93824992485456, 
93824992754952, 140737488344528, 93824992485384, 93824992485744}}, sa_flags = 
1431738664, sa_restorer = 0x8}
#4  0x00007ffff7d782d0 in __libc_message (action=action@entry=do_abort, 
fmt=fmt@entry=0x7ffff7e92210 "*** %s ***: terminated\n") at 
../sysdeps/posix/libc_fatal.c:155
        ap = {{gp_offset = 24, fp_offset = 247, overflow_arg_area = 
0x7fffffffd050, reg_save_area = 0x7fffffffcfe0}}
        fd = <optimized out>
        list = <optimized out>
        nlist = <optimized out>
        cp = <optimized out>
#5  0x00007ffff7e10e82 in __GI___fortify_fail (msg=msg@entry=0x7ffff7e921f8 
"stack smashing detected") at ./debug/fortify_fail.c:26
No locals.
#6  0x00007ffff7e10e60 in __stack_chk_fail () at ./debug/stack_chk_fail.c:24
No locals.
#7  0x0000555555557422 in ?? ()
No symbol table info available.
#8  0x00005555555574ba in ?? ()
No symbol table info available.
#9  0x0000555555557aa8 in ?? ()
No symbol table info available.
#10 0x0000555555557e44 in ?? ()
No symbol table info available.
#11 0x0000555555558a04 in ?? ()
No symbol table info available.
#12 0x0000555555556d12 in ?? ()
No symbol table info available.
#13 0x00007ffff7d2018a in __libc_start_call_main 
(main=main@entry=0x5555555562e0, argc=argc@entry=14, 
argv=argv@entry=0x7fffffffe158) at ../sysdeps/nptl/libc_start_call_main.h:58
        self = <optimized out>
        result = <optimized out>
        unwind_buf = {cancel_jmp_buf = {{jmp_buf = {140737488347480, 
4746325038488689852, 0, 140737488347600, 93824992401496, 140737354125344, 
-4746325037838689092, -4746307070948467524}, mask_was_saved = 0}}, priv = {pad 
= {0x0, 0x0, 0x7fffffffe158, 0x7fffffffe158}, data = {prev = 0x0, cleanup = 
0x0, canceltype = -7848}}}
        not_first_call = <optimized out>
#14 0x00007ffff7d20245 in __libc_start_main_impl (main=0x5555555562e0, argc=14, 
argv=0x7fffffffe158, init=<optimized out>, fini=<optimized out>, 
rtld_fini=<optimized out>, stack_end=0x7fffffffe148) at ../csu/libc-start.c:381
No locals.
#15 0x0000555555556f81 in ?? ()
No symbol table info available.
(gdb) quit
A debugging session is active.

        Inferior 1 [process 187740] will be killed.

Quit anyway? (y or n) y
$

Best regards
Björn

-- System Information:
Debian Release: 12.0
  APT prefers stable-security
  APT policy: (500, 'stable-security'), (500, 'stable')
Architecture: amd64 (x86_64)

Kernel: Linux 6.1.0-9-amd64 (SMP w/4 CPU threads; PREEMPT)
Locale: LANG=en_US.UTF-8, LC_CTYPE=sv_SE.UTF-8 (charmap=UTF-8), 
LANGUAGE=en_US:en
Shell: /bin/sh linked to /usr/bin/dash
Init: systemd (via /run/systemd/system)
LSM: AppArmor: enabled

Versions of packages outguess depends on:
ii  libc6  2.36-9

outguess recommends no packages.

outguess suggests no packages.

-- no debconf information

Reply via email to