quicklisp security (or total lack of it)

This page summarizes the projects mentioned and recommended in the original post on /r/lisp

Our great sponsors
  • InfluxDB - Power Real-Time Data Analytics at Scale
  • WorkOS - The modern identity platform for B2B SaaS
  • SaaSHub - Software Alternatives and Reviews
  • mitm6

    pwning IPv4 via IPv6

  • I've been learning some common lisp, reading through Practical Common Lisp, and it's really neat. People say the good ideas of lisp got adapted in other languages and sure that's true of garbage collection, lambda's and some others, but I'm seeing plenty incredible stuff I haven't seen elsewhere, the condition system that among other things lets you fix and resume your program on exception, real interactive development, flexible object system, macros way more understandable than in other languages with AST macros as in lisp the AST is simple, an expressive dynamic language at high level of ruby and python while being an order of magnitude faster performance. Quicklisp also is really neat, how many other package managers can load new dependencies without restarting your application? And I was learning it with idea that it's not just of historical or hobby interest but legitimately a good choice I can use for new programming projects today for many tasks, but I just learned something that makes it impossible for me to consider, which is complete lack of security of quicklisp. You go to the website and see sha256 hash and PGP signature for quicklisp download, awesome it seems at the security standard you expect for a package manager. But then the actual quicklisp client does all downloads over http with no verification. What this means in practical terms is basically if you use quicklisp, anyone on your local network can easily hack your computer, by MITM (man-in-the-middle) the traffic and serving you backdoored software when you install packages from quicklisp. mitm6 will MITM windows machines on normal networks, bettercap can MITM linux and os x on most networks. Aside from attackers on your local network there's plenty other scenarios, you can go near office of CL using company and set up a open WIFI access point with same name as company wifi and hack their developers, using quicklisp over something like Tor is extremely dangerous at present as it would let the exit node backdoor the packages you download, and then in less likely but still should be protected against scenarios is just if quicklisp.org or any router between you and it is compromised, you can be hacked.

  • bettercap

    The Swiss Army knife for 802.11, BLE, IPv4 and IPv6 networks reconnaissance and MITM attacks.

  • I've been learning some common lisp, reading through Practical Common Lisp, and it's really neat. People say the good ideas of lisp got adapted in other languages and sure that's true of garbage collection, lambda's and some others, but I'm seeing plenty incredible stuff I haven't seen elsewhere, the condition system that among other things lets you fix and resume your program on exception, real interactive development, flexible object system, macros way more understandable than in other languages with AST macros as in lisp the AST is simple, an expressive dynamic language at high level of ruby and python while being an order of magnitude faster performance. Quicklisp also is really neat, how many other package managers can load new dependencies without restarting your application? And I was learning it with idea that it's not just of historical or hobby interest but legitimately a good choice I can use for new programming projects today for many tasks, but I just learned something that makes it impossible for me to consider, which is complete lack of security of quicklisp. You go to the website and see sha256 hash and PGP signature for quicklisp download, awesome it seems at the security standard you expect for a package manager. But then the actual quicklisp client does all downloads over http with no verification. What this means in practical terms is basically if you use quicklisp, anyone on your local network can easily hack your computer, by MITM (man-in-the-middle) the traffic and serving you backdoored software when you install packages from quicklisp. mitm6 will MITM windows machines on normal networks, bettercap can MITM linux and os x on most networks. Aside from attackers on your local network there's plenty other scenarios, you can go near office of CL using company and set up a open WIFI access point with same name as company wifi and hack their developers, using quicklisp over something like Tor is extremely dangerous at present as it would let the exit node backdoor the packages you download, and then in less likely but still should be protected against scenarios is just if quicklisp.org or any router between you and it is compromised, you can be hacked.

  • InfluxDB

    Power Real-Time Data Analytics at Scale. Get real-time insights from all types of time series data with InfluxDB. Ingest, query, and analyze billions of data points in real-time with unbounded cardinality.

    InfluxDB logo
  • quicklisp-client

    Quicklisp client.

  • The latest comment I see about this here from Oct. 2022 says they're working on it. There's also comment by the developer in 2016 saying want to improve the security soon, so it doesn't really seem this will actually happen soon. I realise making signature verification work cross platform in pure lisp without external dependencies isn't easy but from latest comment it seems they have that working, in a branch written 4 years ago? The simplest no-code solution is just since quicklisp is published every month or so, on each new update publish a file with sha256 hash of every package contained in quicklisp signed with same developer's pgp key they are already using to sign download of the initial quicklisp.lisp, yes then users if they care about security would have to manually download the file and verify signature every month or so but it's at least some solution that can be done now.

  • ql-https

    HTTPS support for Quicklisp via curl

  • quicklisp-https

  • I use this on a system that has curl to safely bootstrap https://github.com/snmsts/quicklisp-https.git which then uses openssl via dexador so that I can drop the curl dependency. A bit of a dance to get everything up and running, but once it is done for a given system you are good to go.

  • BDFProxy

    Patch Binaries via MITM: BackdoorFactory + mitmProxy.

  • for same sort of thing but not lisp, see backdoor factory that will backdoor any .exe you download over connection that attacker is MITMing. attacker doesn't need to know what specific library you will download from quicklisp, they write a mitmproxy script like that so for any download from quicklisp.org, it opens the .tar.gz, adds some malicious lisp to it (probably that just executes shell command to download and execute their normal malware, password stealer or whatever as I don't think they going to write full malware in lisp), repack it as .tar.gz you were requesting and serve it to you. It's not the same issue as phishing where they email saying please open and run attachment.exe and you click through all the warnings that you are doing something dangerous and about to run untrusted code. You just use quicklisp as you normally do, if you install any package, when an attacker can MITM your connection they can run code on your computer. Yes that is sometimes also possible with browser exploit but browsers have multiple layers of sandbox and protections against it, and when someone finds a vulnerability that gets through it is treated as a serious vulnerability to fix. some of this thread seems people saying well nothing is perfectly secure a sufficiently pacient, skilled, well-funded attacker can always get through somehow, so it doesn't matter raising the bar off the floor by not using http unverified to download code we run on people's computer

NOTE: The number of mentions on this list indicates mentions on common posts plus user suggested alternatives. Hence, a higher number means a more popular project.

Suggest a related project

Related posts