Null bytes related issuesAs PHP uses the underlying C functions for filesystem related operations, it may handle null bytes in a quite unexpected way. As null bytes denote the end of a string in C, strings containing them won't be considered entirely but rather only until a null byte occurs. The following example shows a vulnerable code that demonstrates this problem: Example #1 Script vulnerable to null bytes
<?php Therefore, any tainted string that is used in a filesystem operation should always be validated properly. Here is a better version of the previous example: Example #2 Correctly validating the input
<?php |