Debian DSA-168-1 : php - bypassing safe_mode, CRLF injection

high Nessus Plugin ID 15005

Synopsis

The remote Debian host is missing a security-related update.

Description

Wojciech Purczynski found out that it is possible for scripts to pass arbitrary text to sendmail as commandline extension when sending a mail through PHP even when safe_mode is turned on. Passing 5th argument should be disabled if PHP is configured in safe_mode, which is the case for newer PHP versions and for the versions below. This does not affect PHP3, though.

Wojciech Purczynski also found out that arbitrary ASCII control characters may be injected into string arguments of the mail() function. If mail() arguments are taken from user's input it may give the user ability to alter message content including mail headers.

Ulf Harnhammar discovered that file() and fopen() are vulnerable to CRLF injection. An attacker could use it to escape certain restrictions and add arbitrary text to alleged HTTP requests that are passed through.

However this only happens if something is passed to these functions which is neither a valid file name nor a valid url. Any string that contains control chars cannot be a valid url. Before you pass a string that should be a url to any function you must use urlencode() to encode it.

Three problems have been identified in PHP :

- The mail() function can allow arbitrary email headers to be specified if a recipient address or subject contains CR/LF characters.
- The mail() function does not properly disable the passing of arbitrary command-line options to sendmail when running in Safe Mode.

- The fopen() function, when retrieving a URL, can allow manipulation of the request for the resource through a URL containing CR/LF characters. For example, headers could be added to an HTTP request.

These problems have been fixed in version 3.0.18-23.1woody1 for PHP3 and 4.1.2-5 for PHP4 for the current stable distribution (woody), in version 3.0.18-0potato1.2 for PHP3 and 4.0.3pl1-0potato4 for PHP4 in the old stable distribution (potato) and in version 3.0.18-23.2 for PHP3 and 4.2.3-3 for PHP4 for the unstable distribution (sid).

Solution

Upgrade the PHP packages.

See Also

http://www.debian.org/security/2002/dsa-168

Plugin Details

Severity: High

ID: 15005

File Name: debian_DSA-168.nasl

Version: 1.27

Type: local

Agent: unix

Published: 9/29/2004

Updated: 1/4/2021

Supported Sensors: Frictionless Assessment Agent, Nessus Agent, Agentless Assessment, Nessus

Risk Information

VPR

Risk Factor: Medium

Score: 5.8

CVSS v2

Risk Factor: High

Base Score: 7.5

Temporal Score: 5.5

Vector: CVSS2#AV:N/AC:L/Au:N/C:P/I:P/A:P

Vulnerability Information

CPE: p-cpe:/a:debian:debian_linux:php3, p-cpe:/a:debian:debian_linux:php4, cpe:/o:debian:debian_linux:2.2, cpe:/o:debian:debian_linux:3.0

Required KB Items: Host/local_checks_enabled, Host/Debian/release, Host/Debian/dpkg-l

Exploit Ease: No known exploits are available

Patch Publication Date: 9/18/2002

Vulnerability Publication Date: 7/30/2003

Reference Information

CVE: CVE-2002-0985, CVE-2002-0986, CVE-2002-1783

BID: 5681

DSA: 168