Admin message

Due to a large amount of spam we do not allow new users to create repositories, they are "external" users. If you are a new user and want to create a repository, for example for forking GHC, open a new issue on ghc/ghc using the "get-verified" issue template

[Security] Safe Haskell can be bypassed via annotations
``` module Test (hook) where import System.IO.Unsafe {-# ANN hook (unsafePerformIO (putStrLn "Woops.")) #-} hook = undefined ``` ``` ➜ Test ghc -fpackage-trust -XSafe Test_simple.hs [1 of 1] Compiling Test_simple ( Test_simple.hs, Test_simple.o ) [flags changed] Woops. Test_simple.hs:4:1: System.IO.Unsafe: Can't be safely imported! The module itself isn't safe. ``` GHC ultimately rejects the program due to the `System.IO.Unsafe` import, but this check doesn't occur until GHC has compiled and run the annotation expression, allowing arbitrary IO operations via `unsafePerformIO`. The solution is probably to move the import check from the end of renaming/typechecking to the start.
issue