...
| Wiki Markup |
|---|
The {{open()}} function accepts a third argument to determine a newly created file's access mode. If {{open()}} is used to create a new file and the third argument is omitted, the file may be created with unintended access permissions \[[FIO06-A. Create files with appropriate access permissions]\]. |
In this non-compliant code example from a vulnerability in the useradd() function of the shadow-utils package CVE-2006-1174 , the third argument to open() has been accidentally ommitted.
| Code Block | |||
|---|---|---|---|
| |||
/* ... */ int fd = open(file_namems, O_CREAT |O_EXCL| O_WRONLY); /* access permissions are missing */ if (fd == -1){ /* Handle Error */ } /* ... */|O_TRUNC); |
Compliant Solution: (variadic functions)
...