The product does not drop privileges before passing control of a resource to an actor that does not have those privileges.
In some contexts, a system executing with elevated permissions will hand off a process/file/etc. to another process or user. If the privileges of an entity are not reduced, then elevated privileges are spread throughout a system and possibly to an attacker.
Threat Mapped score: 1.8
Industry: Finiancial
Threat priority: P4 - Informational (Low)
CVE: CVE-2000-1213
Program does not drop privileges after acquiring the raw socket.
CVE: CVE-2001-0559
Setuid program does not drop privileges after a parsing error occurs, then calls another program to handle the error.
CVE: CVE-2001-0787
Does not drop privileges in related groups when lowering privileges.
CVE: CVE-2002-0080
Does not drop privileges in related groups when lowering privileges.
CVE: CVE-2001-1029
Does not drop privileges before determining access to certain files.
CVE: CVE-1999-0813
Finger daemon does not drop privileges when executing programs on behalf of the user being fingered.
CVE: CVE-1999-1326
FTP server does not drop privileges if a connection is aborted during file transfer.
CVE: CVE-2000-0172
Program only uses seteuid to drop privileges.
CVE: CVE-2004-2504
Windows program running as SYSTEM does not drop privileges before executing other programs (many others like this, especially involving the Help facility).
CVE: CVE-2004-0213
Utility Manager launches winhlp32.exe while running with raised privileges, which allows local users to gain system privileges.
CVE: CVE-2004-0806
Setuid program does not drop privileges before executing program specified in an environment variable.
CVE: CVE-2004-0828
Setuid program does not drop privileges before processing file specified on command line.
CVE: CVE-2004-2070
Service on Windows does not drop privileges before using "view file" option, allowing code execution.
N/A
N/A
Phase | Note |
---|---|
Architecture and Design | N/A |
Implementation | REALIZATION: This weakness is caused during implementation of an architectural security tactic. |
Operation | N/A |
Intro: The following code calls chroot() to restrict the application to a subset of the filesystem below APP_HOME in order to prevent an attacker from using the program to gain unauthorized access to files located elsewhere. The code then opens a file specified by the user and processes the contents of the file.
Body: Constraining the process inside the application's home directory before opening any files is a valuable security measure. However, the absence of a call to setuid() with some non-zero value means the application is continuing to operate with unnecessary root privileges. Any successful exploit carried out by an attacker against the application can now result in a privilege escalation attack because any malicious operations will be performed with the privileges of the superuser. If the application drops to the privilege level of a non-root user, the potential for damage is substantially reduced.
chroot(APP_HOME); chdir("/"); FILE* data = fopen(argv[1], "r+"); ...