Skip to content

v1.1.0

Choose a tag to compare

@TheCryptoDonkey TheCryptoDonkey released this 02 Aug 14:26
· 4 commits to main since this release

Added

  • farrier-kit/node: a Node-only, DNS-pinned fetch for resolving untrusted
    LNURL and Lightning Address hosts on a server. createPinnedFetch returns a
    fetchImpl for resolveLnurlPay, verifyLud21 and createCapabilityProbe.
    It resolves the hostname once, rejects the request if any answer is private,
    loopback, link-local, reserved, documentation-only or multicast (IPv4 and
    IPv6), and pins the socket to the approved address by overriding its DNS
    lookup, so there is no second resolution for a rebinding race to win. The TLS
    SNI, certificate check and Host header stay on the original hostname, and it
    never follows redirects. This closes the DNS-rebinding window a check-then-
    fetch urlGuard cannot. Browser and other entries are unchanged.

Notes

  • The /node entry is server-side I/O, not part of the language-neutral vector
    contract; native ports implement their own pinning against the same IP policy.

Reproducible build: byte-identical output verified across two independent CI runners.

Artefact integrity

file:      farrier-kit-1.1.0.tgz
size:      122129 bytes
sha256:    80f736ee6d2ccf9f1c04a63ef27a62f067740629e875da541a01554f24ce57b5
sha512-g8hZMLZ3ef0yrSEr22F9wovjr+LaggSUeOGFGLmAny8zAvRmc+f+OBSf58LtZJVUhoLeQ1i0eQyX6q7H5RzxtQ==

Verify against the registry tarball:

curl -sLO https://registry.npmjs.org/farrier-kit/-/farrier-kit-1.1.0.tgz
shasum -a 256 farrier-kit-1.1.0.tgz