[Secure-testing-team] Bug#622903: xscreensaver (linked against libcrypto1.0.0) crashes upon unlock when using libp11 0.2.7-3 (linked against libcrypto0.9.8)

Daniel Kahn Gillmor dkg at fifthhorseman.net
Fri Apr 15 18:12:34 UTC 2011


Package: xscreensaver
Version: 5.11-1+b1
Severity: grave
Tags: security
Justification: user security hole

on i386, xscreensaver 5.11-1+b1 (currently in wheezy/testing) is
linked against libssl and libcrypto version 1.0.0.

libp11-1 0.2.7-3 (also currently in wheezy/testing) links against libssl
and libcrypto version 0.9.8.

So now in wheezy, if libpam-p11 is installed and configured for use,
xscreensaver apparently falls prey to a double-free within libc.

It currently crashes during the unlock phase, which appears to render
the screen lock useless.

Here's the crash log:

*** glibc detected *** xscreensaver: double free or corruption (out): 0x09756c90 ***
======= Backtrace: =========
/lib/i686/cmov/libc.so.6(+0x6b281)[0xb7526281]
/lib/i686/cmov/libc.so.6(+0x6cad8)[0xb7527ad8]
/lib/i686/cmov/libc.so.6(cfree+0x6d)[0xb752abbd]
/usr/lib/i686/cmov/libcrypto.so.0.9.8(CRYPTO_free+0x3a)[0xb7150d0a]
/usr/lib/i686/cmov/libcrypto.so.0.9.8(ASN1_STRING_free+0x35)[0xb71e7135]
/usr/lib/i686/cmov/libcrypto.so.0.9.8(ASN1_primitive_free+0x86)[0xb71db146]
/usr/lib/i686/cmov/libcrypto.so.0.9.8(+0xd3254)[0xb71db254]
/usr/lib/i686/cmov/libcrypto.so.0.9.8(ASN1_template_free+0x93)[0xb71db4c3]
/usr/lib/i686/cmov/libcrypto.so.0.9.8(+0xd33bf)[0xb71db3bf]
/usr/lib/i686/cmov/libcrypto.so.0.9.8(ASN1_template_free+0x93)[0xb71db4c3]
/usr/lib/i686/cmov/libcrypto.so.0.9.8(+0xd33bf)[0xb71db3bf]
/usr/lib/i686/cmov/libcrypto.so.0.9.8(ASN1_item_free+0x18)[0xb71db508]
/usr/lib/i686/cmov/libcrypto.so.0.9.8(X509_free+0x27)[0xb71d4727]
/usr/lib/libp11.so.1(+0x25f5)[0xb78235f5]
/usr/lib/libp11.so.1(+0x4625)[0xb7825625]
/usr/lib/libp11.so.1(+0x46d7)[0xb78256d7]
/usr/lib/libp11.so.1(PKCS11_release_all_slots+0x40)[0xb7825750]
/lib/security/pam_p11_opensc.so(pam_sm_authenticate+0x267)[0xb7829187]
/lib/libpam.so.0(+0x257d)[0xb763a57d]
/lib/libpam.so.0(pam_authenticate+0x4d)[0xb7639dbd]
xscreensaver[0x80657fa]
xscreensaver[0x806510e]
xscreensaver[0x8060423]
xscreensaver[0x804dfbb]
xscreensaver[0x804f0f8]
/lib/i686/cmov/libc.so.6(__libc_start_main+0xe6)[0xb74d1c76]
xscreensaver[0x804c3e1]
======= Memory map: ========
08048000-0807b000 r-xp 00000000 fd:05 42441      /usr/bin/xscreensaver
0807b000-0807c000 rw-p 00033000 fd:05 42441      /usr/bin/xscreensaver
0807c000-0807f000 rw-p 00000000 00:00 0 
09710000-097a2000 rw-p 00000000 00:00 0          [heap]
b6e00000-b6e21000 rw-p 00000000 00:00 0 
b6e21000-b6f00000 ---p 00000000 00:00 0 
b6fa1000-b6fbd000 r-xp 00000000 fd:03 81428      /lib/libgcc_s.so.1
b6fbd000-b6fbe000 rw-p 0001b000 fd:03 81428      /lib/libgcc_s.so.1
b6fbe000-b6fc5000 r-xp 00000000 fd:05 36994      /usr/lib/libopenct.so.1.0.0
b6fc5000-b6fc6000 rw-p 00006000 fd:05 36994      /usr/lib/libopenct.so.1.0.0
b6fc6000-b6fdb000 r-xp 00000000 fd:03 101611     /lib/i686/cmov/libpthread-2.11.2.so
b6fdb000-b6fdc000 r--p 00014000 fd:03 101611     /lib/i686/cmov/libpthread-2.11.2.so
b6fdc000-b6fdd000 rw-p 00015000 fd:03 101611     /lib/i686/cmov/libpthread-2.11.2.so
b6fdd000-b6fdf000 rw-p 00000000 00:00 0 
b6fdf000-b7085000 r-xp 00000000 fd:05 36605      /usr/lib/libopensc.so.2.0.0
b7085000-b708a000 rw-p 000a5000 fd:05 36605      /usr/lib/libopensc.so.2.0.0
b708a000-b708c000 rw-p 00000000 00:00 0 
b708c000-b70b3000 r-xp 00000000 fd:05 36618      /usr/lib/libpkcs15init.so.2.0.0
b70b3000-b70b5000 rw-p 00027000 fd:05 36618      /usr/lib/libpkcs15init.so.2.0.0
b70d1000-b70ea000 r-xp 00000000 fd:03 81288      /lib/libselinux.so.1
b70ea000-b70eb000 r--p 00018000 fd:03 81288      /lib/libselinux.so.1
b70eb000-b70ec000 rw-p 00019000 fd:03 81288      /lib/libselinux.so.1
b70f3000-b7106000 r-xp 00000000 fd:05 36480      /usr/lib/opensc-pkcs11.so
b7106000-b7108000 rw-p 00012000 fd:05 36480      /usr/lib/opensc-pkcs11.so
b7108000-b7244000 r-xp 00000000 fd:05 36593      /usr/lib/i686/cmov/libcrypto.so.0.9.8
b7244000-b725c000 rw-p 0013b000 fd:05 36593      /usr/lib/i686/cmov/libcrypto.so.0.9.8
b725c000-b725f000 rw-p 00000000 00:00 0 
b725f000-b7272000 r-xp 00000000 fd:05 32694      /usr/lib/libz.so.1.2.3.4
b7272000-b7273000 rw-p 00013000 fd:05 32694      /usr/lib/libz.so.1.2.3.4
b7273000-b73d5000 r-xp 00000000 fd:05 35232      /usr/lib/i686/cmov/libcrypto.so.1.0.0
b73d5000-b73ea000 rw-p 00162000 fd:05 35232      /usr/lib/i686/cmov/libcrypto.so.1.0.0
b73ea000-b73ed000 rw-p 00000000 00:00 0 
b73ed000-b7431000 r-xp 00000000 fd:05 35233      /usr/lib/i686/cmov/libssl.so.1.0.0
b7431000-b7435000 rw-p 00043000 fd:05 35233      /usr/lib/i686/cmov/libssl.so.1.0.0
b7438000-b7444000 r-xp 00000000 fd:03 84117      /lib/security/pam_unix.so
b7444000-b7445000 rw-p 0000b000 fd:03 84117      /lib/security/pam_unix.so
b7445000-b7451000 rw-p 00000000 00:00 0 
b7451000-b7455000 r-xp 00000000 fd:05 35031      /usr/lib/libXfixes.so.3.1.0
b7455000-b7456000 rw-p 00003000 fd:05 35031      /usr/lib/libXfixes.so.3.1.0
b7456000-b745e000 r-xp 00000000 fd:05 34973      /usr/lib/libXcursor.so.1.0.2
b745e000-b745f000 rw-p 00007000 fd:05 34973      /usr/lib/libXcursor.so.1.0.2
b745f000-b7469000 r-xp 00000000 fd:03 101620     /lib/i686/cmov/libnss_files-2.11.2.so
b7469000-b746a000 r--p 00009000 fd:03 101620     /lib/i686/cmov/libnss_files-2.11.2.so
b746a000-b746b000 rw-p 0000a000 fd:03 101620     /lib/i686/cmov/libnss_files-2.11.2.so
b746b000-b7473000 r-xp 00000000 fd:03 101609     /lib/i686/cmov/libnss_nis-2.11.2.so
b7473000-b7474000 r--p 00008000 fd:03 101609     /lib/i686/cmov/libnss_nis-2.11.2.so
b7474000-b7475000 rw-p 00009000 fd:03 101609     /lib/i686/cmov/libnss_nis-2.11.2.so
b7475000-b7488000 r-xp 00000000 fd:03 101621     /lib/i686/cmov/libnsl-2.11.2.so
b7488000-b7489000 r--p 00012000 fd:03 101621     /lib/i686/cmov/libnsl-2.11.2.so
b7489000-b748a000 rw-p 00013000 fd:03 101621     /lib/i686/cmov/libnsl-2.11.2.so
b748a000-b748c000 rw-p 00000000 00:00 0 
b748c000-b7492000 r-xp 00000000 fd:03 101605     /lib/i686/cmov/libnss_compat-2.11.2.so
b7492000-b7493000 r--p 00006000 fd:03 101605     /lib/i686/cmov/libnss_compat-2.11.2.so
b7493000-b7494000 rw-p 00007000 fd:03 101605     /lib/i686/cmov/libnss_compat-2.11.2.so
b7494000-b7496000 rw-p 00000000 00:00 0 
b7496000-b749a000 r-xp 00000000 fd:05 34072      /usr/lib/libXdmcp.so.6.0.0
b749a000-b749b000 rw-p 00003000 fd:05 34072      /usr/lib/libXdmcp.so.6.0.0
b749b000-b749d000 r-xp 00000000 fd:05 38019      /usr/lib/libXau.so.6.0.0
b749d000-b749e000 rw-p 00001000 fd:05 38019      /usr/lib/libXau.so.6.0.0
b749e000-b74b6000 r-xp 00000000 fd:05 32797      /usr/lib/libxcb.so.1.1.0
b74b6000-b74b7000 rw-p 00017000 fd:05 32797      /usr/lib/libxcb.so.1.1.0
b74b7000-b74ba000 r-xp 00000000 fd:03 81367      /lib/libuuid.so.1.3.0
b74ba000-b74bb000 rw-p 00002000 fd:03 81367      /lib/libuuid.so.1.3.0
b74bb000-b75fb000 r-xp 00000000 fd:03 101622     /lib/i686/cmov/libc-2.11.2.so
b75fb000-b75fd000 r--p 0013f000 fd:03 101622     /lib/i686/cmov/libc-2.11.2.so
b75fd000-b75fe000 rw-p 00141000 fd:03 101622     /lib/i686/cmov/libc-2.11.2.so
b75fe000-b7602000 rw-p 00000000 00:00 0 
b7602000-b760b000 r-xp 00000000 fd:03 101604     /lib/i686/cmov/libcrypt-2.11.2.so
b760b000-b760c000 r--p 00008000 fd:03 101604     /lib/i686/cmov/libcrypt-2.11.2.so
b760c000-b760d000 rw-p 00009000 fd:03 101604     /lib/i686/cmov/libcrypt-2.11.2.so
b760d000-b7634000 rw-p 00000000 00:00 0 
b7634000-b7636000 r-xp 00000000 fd:03 101614     /lib/i686/cmov/libdl-2.11.2.so
b7636000-b7637000 r--p 00001000 fd:03 101614     /lib/i686/cmov/libdl-2.11.2.so
b7637000-b7638000 rw-p 00002000 fd:03 101614     /lib/i686/cmov/libdl-2.11.2.so
b7638000-b7643000 r-xp 00000000 fd:03 81509      /lib/libpam.so.0.82.3
b7643000-b7644000 rw-p 0000a000 fd:03 81509      /lib/libpam.so.0.82.3
b7644000-b7652000 r-xp 00000000 fd:05 179232     /usr/lib/libXext.so.6.4.0
b7652000-b7653000 rw-p 0000d000 fd:05 179232     /usr/lib/libXext.so.6.4.0
b7653000-b776e000 r-xp 00000000 fd:05 32941      /usr/lib/libX11.so.6.3.0Aborted


I've worked around this problem locally by upgrading libp11-1 to
0.2.7-3+b1 (from unstable).  I worry that it will bite other users who
are running testing, though.

It's pretty bad to leave the user's X11 session unlocked if they've
explicitly indicated that it should be locked :(

I'm not sure how to fix the problem more generally, though.

Thanks for maintaining xscreenserver for debian!

Regards,

    --dkg

-- System Information:
Debian Release: wheezy/sid
  APT prefers testing
  APT policy: (500, 'testing'), (200, 'unstable'), (1, 'experimental')
Architecture: i386 (i686)

Kernel: Linux 2.6.38-2-686 (SMP w/1 CPU core)
Locale: LANG=en_US.utf8, LC_CTYPE=en_US.utf8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/bash

Versions of packages xscreensaver depends on:
ii  libatk1.0-0                1.32.0-3      The ATK accessibility toolkit
ii  libc6                      2.11.2-11     Embedded GNU C Library: Shared lib
ii  libcairo2                  1.10.2-6      The Cairo 2D vector graphics libra
ii  libfontconfig1             2.8.0-2.1     generic font configuration library
ii  libfreetype6               2.4.4-1       FreeType 2 font engine, shared lib
ii  libglade2-0                1:2.6.4-1     library to load .glade files at ru
ii  libglib2.0-0               2.28.4-1      The GLib library of C routines
ii  libgtk2.0-0                2.24.3-1~sid1 The GTK+ graphical user interface 
ii  libice6                    2:1.0.7-1     X11 Inter-Client Exchange library
ii  libpam0g                   1.1.2-2       Pluggable Authentication Modules l
ii  libpango1.0-0              1.28.3-6      Layout and rendering of internatio
ii  libsm6                     2:1.2.0-1     X11 Session Management library
ii  libx11-6                   2:1.4.2-1     X11 client-side library
ii  libxext6                   2:1.2.0-2     X11 miscellaneous extension librar
ii  libxinerama1               2:1.1.1-1     X11 Xinerama extension library
ii  libxml2                    2.7.8.dfsg-2  GNOME XML library
ii  libxmu6                    2:1.1.0-1     X11 miscellaneous utility library
ii  libxpm4                    1:3.5.9-1     X11 pixmap library
ii  libxrandr2                 2:1.3.1-1     X11 RandR extension library
ii  libxrender1                1:0.9.6-1     X Rendering Extension client libra
ii  libxt6                     1:1.1.1-1     X11 toolkit intrinsics library
ii  libxxf86vm1                1:1.1.1-1     X11 XFree86 video mode extension l
ii  xscreensaver-data          5.11-1+b1     data files to be shared among scre

Versions of packages xscreensaver recommends:
ii  libjpeg-progs       8c-1                 Programs for manipulating JPEG fil
ii  miscfiles [wordlist 1.4.2.dfsg.1-9       Dictionaries and other interesting
ii  perl [perl5]        5.10.1-19            Larry Wall's Practical Extraction 
ii  xli                 1.17.0+20061110-3+b1 command line tool for viewing imag
ii  xloadimage          4.1-16.2             Graphics file viewer under X11

Versions of packages xscreensaver suggests:
pn  fortune                    <none>        (no description available)
ii  iceape-browser [www-browse 2.0.13-1      Iceape Navigator (Internet browser
ii  iceweasel [www-browser]    4.0-3         Web browser based on Firefox
ii  konqueror [www-browser]    4:4.4.5-3     advanced file manager, web browser
ii  links [www-browser]        2.3~pre1-1+b1 Web browser running in text mode
pn  qcam | streamer            <none>        (no description available)
pn  xdaliclock                 <none>        (no description available)
pn  xfishtank                  <none>        (no description available)
pn  xscreensaver-gl            <none>        (no description available)

-- no debconf information





More information about the Secure-testing-team mailing list