0.15.16 is a security hardening release for RTL as deployed behind a shared origin, with the dependency batch that clears every open Dependabot alert. There is no change to how RTL talks to Lightning nodes. Operators running the Docker image should pull v0.15.16; this image also carries the refreshed Alpine CA bundle that v0.15.15 missed (#1791). Bare-metal installs stay on Node 22.23.4 or 24.22.1 (or later), as set in 0.15.15.
Full detail in release-notes/Release-notes-0.15.16.md.
Security
- Cookies scoped to RTL's base path (#1785). The session, CSRF and
XSRF-TOKENcookies were issued withPath=/although RTL serves itself under/rtl. Behind BTCPay Server and similar bundles that share an origin with other applications, the browser sent RTL's session and signed CSRF cookies on every request to those sibling paths, and the readableXSRF-TOKENwas visible in theirdocument.cookie. All three now carryPath=/rtl. This is least privilege rather than isolation, and the login and BTCPay single-sign-on flows are unchanged. Reported by Gleb Lizunov (@hokvo). - Docker image upgrades Alpine's packages at build time (#1792, fixes #1791). The v0.15.15 image ran Node 22.23.4, which rejects the leaked eMudhra chains, but was built a few hours before the
node:22-alpinetag picked up Alpine's correctedca-certificatespackage, so BusyBoxwgetandopensslinside the container still trusted them. RTL's own HTTPS calls use Node's bundled roots and were never affected. The runner stage now runsapk upgrade, so every build takes Alpine's current fixes regardless of when the base tag was last rebuilt. Reported by Nicolas Dorier (@NicolasDorier).
Dependencies
- Dependency update batch (#1784):
npm auditgoes from 17 findings (1 high in production scope) to 0 in both scopes. The production fix isbody-parser2.4.0 (GHSA-27r3-jxmh-p828, mishandled trailing bytes after a compressed request body; reachable before authentication). The rest is build tooling: Angular CLI 20.3.41 (brings@modelcontextprotocol/sdk1.32.1; supersedes #1783),uuid11.1.1 undersockjsvia a scoped override, and transitive patches tolaunch-editor,fast-uri,serialize-javascript,undici,viteandwebpack. The Dependabot PRs filed on 2026-10-25 (#1786 to #1790) are all covered by this batch and close once the release reachesmaster. - The Angular framework stays on 20.3.34. Angular 22 (#1732) is a migration and stays open.
Verification
Verified at the branch tip (72b52098):
npm run lintclean; 381/381 backend tests; 358/358 frontend Karma specs (0 skipped);frontend/andbackend/rebuild byte-identical to the committed copies; PR CI green on Node 22 and 24 for every PR in the cycle including the "Build output matches source" check- A Docker image built from the tip runs Node 22.23.4 on Alpine 3.24.3 with
ca-certificates-bundle-20261020-r0; inside it,wgetto an affected eMudhra test host fails certificate verification while a control host succeeds - That image against the docker regtest fixture: 119/119 API checks across LND, Core Lightning and Eclair, including real routed payments; all three cookies observed with
Path=/rtl; the BTCPay single-sign-on harness passes 16/16 assertions npm auditandnpm audit --omit=dev: 0 vulnerabilities
PGP Key: https://keybase.io/suheb
Retrieve the source code repository, check for the latest release and verify the code signature:
$ git clone https://github.com/Ride-The-Lightning/RTL.git
$ cd RTL
$ git checkout v0.15.16
$ git verify-tag v0.15.16
gpg: Signature made Mon Oct 26 12:47:07 2026 PDT
gpg: using RSA key 3E9BD4436C288039CA827A9200C9E2BC2E45666F
gpg: Good signature from "saubyk (added uid) <39208279+saubyk@users.noreply.github.com>" [ultimate]
gpg: aka "Suheb <39208279+saubyk@users.noreply.github.com>" [ultimate]
gpg: aka "RTL Security <security@ridethelightning.info>" [ultimate]
Install RTL via npm ci
npm ci --omit=dev --legacy-peer-deps
Docker images available at https://hub.docker.com/r/shahanafarooqui/rtl/tags