Time modification flaw in BSD securelevels on NetBSD and Linux
The implementations of securelevels on NetBSD and Linux contain an
integer overflow, allowing the protection of system time to be completely
Affected Versions: NetBSD-current: source prior to December 5, 2005
Linux vanilla kernel 188.8.131.52 and below
Fixed Versions: NetBSD-current: December 5, 2005
NetBSD-3 branch: December 6, 2005
NetBSD-2.1 branch: December 6, 2005
NetBSD-2.0 branch: December 6, 2005
NetBSD-2 branch: December 6, 2005
NetBSD-1.6 branch: December 6, 2005
Linux vanilla kernel: November 18, 2006
Vulnerability Type: System time modification
BSD-Securelevels try to harden the system by restricting certain
functions. The manpage states: "The kernel runs with five different
levels of security. Any super-user process can raise the security level,
but no process can lower it."
When running a securelevel equal or higher than two kernel time changes
are restricted. While it is possible to set the clock forward, it is
not possible to turn it backwards. By setting the clock forward to the
end of unixtime an integer overflow will be triggered and the clock will
By setting the system time to the end of unixtime, it is possible to
reset the system time to the lowest possible integer of unixtime. When
the systemclock reaches "Tue Jan 19 03:14:08 UTC 2038", the 32-bit
signed integer containing the time will overflow and the system time
will be reset to "Fri Dec 13 20:45:52 UTC 1901". This is known as the
Year 2038 Problem.
The flaw is also present when running a securelevel of two or greater,
allowing the restrictions on kernel time changes to be circumvented.
Proof of Concept
# date 203801190414.07
Di 19 Jan 2038 04:14:07 CET
Fr 13 Dez 1901 21:45:53 CET
No workaround is available.
The problem has been fixed in all affected versions of NetBSD.
No fix is available for the Linux implementation of securelevels.
The security risk is to be considered medium. System time is
crucial for the reliability and stability of a system. Time
modification can cause denial of service and other major problems.
For instance expired certificates can still be used.
2005-11-05 Problem discovered while testing a product of iPisec Ltd.
2005-11-29 Discussed the issue with iPisec management and technicians
2005-12-02 Contacted the maintainer of BSD-Securelevels on Linux
2005-12-02 Response from the maintainer of BSD-Securelevels on Linux he
wants to do what *BSD will be doing
2005-12-04 Contacted NetBSD security
2005-12-05 Response from NetBSD security - problem has been fixed
2005-12-15 Forwarded the *BSD responses to the Linux maintainer
2006-01-05 No further response from the Linux maintainer
2006-01-09 Coordinated public release
2006-12-04 Update affected/fixed versions: vanilla kernel
2009-05-08 Updated Advisory URL
RedTeam offers interested business parties penetration tests to validate
their security. Doing security research RedTeam likes to enhance the
common knowledgebase in security-related areas. More information about
RedTeam can be found at http://www.redteam-pentesting.de.