screen doesn't unset the environment variable; it is removed by Linux itself.
On most systems, the
/usr/bin/screen executable is installed with the setgid bit for
utmp group, in order to be able to modify the
utmp database. It also uses setgid to control access to the socket directory (
On Linux, when a setuid (or setgid) program is ran, it does not receive certain environment variables (including
LD_LIBRARY_PATH, several other
LD_* variables, and
HOSTALIASES), in order to reduce the possible attack points: Otherwise you could write a small library and trick
sudo into calling your "improved" functions that way.
You can remove the setgid bit from
screen, but you will have to make the socket directory fully accessible by everyone (mode 0777). It shouldn't be a security risk, though, as
screen also checks the attacher's UID itself.
However, you should not make the
utmp database world-writable.