aboutsummaryrefslogtreecommitdiffstats
path: root/spanish/security/1997/19970220.wml
blob: b112b7bcbb23224218a5bc6a540fc2caaee928fd (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
#use wml::debian::translation-check translation="ae4a72744f84be54cae3e4ec65a8488af3af84d1"
<define-tag moreinfo>
<p>El desbordamiento existe, pero libera los privilegios de root antes de que
se ejecute el código.

<p>Rremitente original del informe: Khelbin &lt;khelbin@connix.com&gt;

<p>Screen 3.07.02, cuando está con setuid root (como suele ser normalmente),
es [susceptible] a un desbordamiento de búfer al menos en ciertas plataformas.
No he leído todo el código fuente, sino sólo le he echado un vistazo y he
visto que en attacher.c ocurre lo siguiente:

<pre>
      struct passwd ppp;
      char fullname[100];

      strcpy(fullname, ppp-&gt;pw_gecos);
</pre>

<p>He desarrollado una explotación rápida pero falló al intentar hacerlo
funcionar aquí en BSDI 1.1 porque chpass/chfn no exceptuará algunos
caracteres. Por tanto, leer en el shell del código el nombre completo del
campo producía un mensaje de error de "Carácter ilegal encontrado en el campo
nombre completo, ¿reeditar [s]?" o algo similar.

<p>Cualquier sistema operativo o versión de chfn/chpass que no compruebe
'caracteres ilegales' o la longitud de la información puesta en el campo
(BSDI 1.1 no comprobaba la longiud, sólo los caracteres ilegales) pueden
ser vulnerables (no comprobé si había dejado los privilegios de root ya, iba
a verificar el desbordamiento con mi cadena de código de shell).

<p>Lo que estaba haciendo sólo era poner la cadena de mi código de shell en
una variable de entorno ENV (con NOPs y dirección de retorno puesta a NOPS) y
mostrando la variable de entorno ENV a un archivo.  Luego simplemente lea en
ese archivo cuando esté en chpass/chfn como el nuevo campo de información
gecos.
</define-tag>
<define-tag description>El programa "screen" se desborda al copiar el campo
geos.</define-tag>

# do not modify the following line
#include '$(ENGLISHDIR)/security/1997/19970220.data'

© 2014-2024 Faster IT GmbH | imprint | privacy policy