[LUGA] Mit freundlicher Unterstützung von:
Linux New Media AG

Mail Thread Index

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: bash vulnerability in CGI Scripts

V.Grabner wrote:
>   B. Vulnerability Details
>      The error
>      involves the variable "string," which has been declared to be of type
>      "char *."
>      The "string" variable is used to traverse the character string
>      containing the command line to be parsed.  As characters are retrieved
>      from this pointer, they are stored in a variable of type "int."  On
>      systems/compilers where the "char" type defaults to "signed char", this
>      vaule will be sign-extended when it is assigned to the "int" variable.
>      For character code 255 decimal (-1 in two's complement form), this sign
>      extension results in the value (-1) being assigned to the integer.

Und so weiter und so fort. Welcher C-Programmierer wäre von diesem
Problem noch nie gebissen worden? Ich möchte einen Schilling für jedes
Programm, in dem das Code-Fragment 

char *p;
while (isspace(*p) p++;

vorkommt. Neben dem Mangel an sicheren String-Manipulationsfunktionen
ist die Tatsache, daß Strings aus signed chars bestehen (können), aber
einzelne Zeichen fast immer als unsigned char (+EOF) behandelt werden
sollen, vermutlich eine der häufigsten Bugursachen in C.


   _  | Peter J. Holzer             | If I were God, or better yet
|_|_) | Sysadmin WSR                | Linus, I would ...
| |   | hjp@wsr.ac.at               |     -- Bill Davidsen
__/   | http://wsrx.wsr.ac.at/~hjp/ |        (davidsen@tmr.com)

powered by LINUX the choice of a gnu generation
linux user group austria;
Letzte Änderung:
September 2010