Vulnerability Note VU#943633

FreeBSD can be compromised locally via signal handlers

Original Release date: 14 Sep 2001 | Last revised: 12 Dec 2002


The FreeBSD operating system does not adequately clear signal handlers subsequent to a process calling exec() on a setuid program. This vulnerability can allow a local attacker to execute arbitrary code as root.


The unix fork() function's purpose is to create a new process from an existing process. The new process is called the child process, and the existing process is called the parent. When a process forks, it inherits the parent's signal handling settings. The unix exec() function's purpose is to replace the current process image with a new process image. After this has occured, the kernel should clear the signal handlers because they are no longer valid. Because the FreeBSD operating system does not adequately clear signal handlers subsequent to a process calling exec(), an attacker can execute arbitrary code as root.


An local attacker may be able to execute arbitrary code as root.


Apply a patch from your vendor or upgrade your operating system to FreeBSD 4.3-STABLE.

Systems Affected (Learn More)

VendorStatusDate NotifiedDate Updated
FreeBSDAffected02 Jul 200114 Sep 2001
Cray Inc.Not Affected-04 Oct 2001
Hewlett-Packard CompanyNot Affected14 Sep 200121 Sep 2001
If you are a vendor and your product is affected, let us know.

CVSS Metrics (Learn More)

Group Score Vector
Base N/A N/A
Temporal N/A N/A
Environmental N/A N/A



The CERT Coordination Center thanks Georgi Guninski for discovering this vulnerability and the FreeBSD project for providing a patch to address the vulnerability.

This document was written by Ian A. Finlay.

Other Information

  • CVE IDs: CVE-2001-1180
  • Date Public: 10 Jul 2001
  • Date First Published: 14 Sep 2001
  • Date Last Updated: 12 Dec 2002
  • Severity Metric: 29.25
  • Document Revision: 30


If you have feedback, comments, or additional information about this vulnerability, please send us email.