Control: tags 662903 + security

On Wed, 2012-03-07 at 14:09 +0800, Paul Wise wrote:

> apertium-dbus sets up debugging output to /tmp/mode.log and then never
> uses it. It should not setup this log file at all if it will not use
> it.

Turns out this is a minor security issue An attacker could create
arbitrarily named empty files as the user running apertium-dbus. There
is no possibility of any other issues because the log is not written to:

pabs@chianamo ~ $ sudo ln -s /home/pabs/foo /tmp/mode.log
pabs@chianamo ~ $ ls -l /home/pabs/foo /tmp/mode.log
ls: cannot access /home/pabs/foo: No such file or directory
lrwxrwxrwx 1 root root 14 Sep  5 23:09 /tmp/mode.log -> /home/pabs/foo
pabs@chianamo ~ $ apertium-tolk 
/usr/bin/apertium-tolk:69: GtkWarning: IA__gtk_toolbar_set_icon_size: assertion 
`icon_size != GTK_ICON_SIZE_INVALID' failed
  self.glade = tolk.GladeXML(path) # Instantiate our custom Glade class which 
extends the gtk.glade.GladeXML class
pabs@chianamo ~ $ ls -l /home/pabs/foo /tmp/mode.log
-rw-r----- 1 pabs pabs  0 Sep  5 23:09 /home/pabs/foo
lrwxrwxrwx 1 root root 14 Sep  5 23:09 /tmp/mode.log -> /home/pabs/foo
pabs@chianamo ~ $ file foo
foo: empty
pabs@chianamo ~ $ echo foo > foo
pabs@chianamo ~ $ ls -l /home/pabs/foo /tmp/mode.log
-rw-r----- 1 pabs pabs  4 Sep  5 23:10 /home/pabs/foo
lrwxrwxrwx 1 root root 14 Sep  5 23:09 /tmp/mode.log -> /home/pabs/foo
pabs@chianamo ~ $ cat foo
foo
pabs@chianamo ~ $ apertium-tolk 
/usr/bin/apertium-tolk:69: GtkWarning: IA__gtk_toolbar_set_icon_size: assertion 
`icon_size != GTK_ICON_SIZE_INVALID' failed
  self.glade = tolk.GladeXML(path) # Instantiate our custom Glade class which 
extends the gtk.glade.GladeXML class
pabs@chianamo ~ $ ls -l /home/pabs/foo /tmp/mode.log
-rw-r----- 1 pabs pabs  4 Sep  5 23:10 /home/pabs/foo
lrwxrwxrwx 1 root root 14 Sep  5 23:09 /tmp/mode.log -> /home/pabs/foo
pabs@chianamo ~ $ cat foo
foo
pabs@chianamo ~ $ grep -C2 log /usr/share/apertium/dbus-1/mode.py
import os.path as path
import os
import logging

import service
--
    service.quit()

def setup_logging():
    logging.basicConfig(level=logging.DEBUG,
                        format='%(asctime)s %(levelname)-8s %(message)s',
                        datefmt='%a, %d %b %Y %H:%M:%S',
                        filename='/tmp/mode.log',
                        filemode='w')
    
if __name__ == "__main__":
    setup_logging()
    objs = create_translation_objects()
    service.add_signal_receiver(quit_handler, dbus_interface = 
"org.apertium.General", signal_name = "QuitSignal")

-- 
bye,
pabs

http://wiki.debian.org/PaulWise

Attachment: signature.asc
Description: This is a digitally signed message part

Reply via email to