Weighs the soul of incoming HTTP requests to stop AI crawlers https://anubis.techaro.lol/
  • Go 88.1%
  • TypeScript 3.4%
  • Shell 3.4%
  • JavaScript 2.1%
  • templ 1.6%
  • Other 1.2%
Find a file
Xe Iaso 0491f1fac2
fix: patch GHSA-6wcg-mqvh-fcvg (#1616)
* fix: patch GHSA-6wcg-mqvh-fcvg

PR https://github.com/TecharoHQ/anubis/pull/1015 added the ability for
reverse proxies using Anubis in subrequest auth mode to look at the path
of a request as there are many rules in the wild that rely on checking
the path. This is how access to things like robots.txt or anything in the
.well-known directory is unaffected by Anubis.

However this logic was also enabled for non-subrequest deployments of Anubis,
meaning that a specially crafted request could include a /.well-known/
path in it and then get around Anubis with little effort.

This fix gates the logic behind a new plumbed variable named subrequestMode
that only fires when Anubis is running in subrequest auth mode. This
properly contains that workaround so that the logic does not fire in
most deployments.

Signed-off-by: Xe Iaso <me@xeiaso.net>

* chore: spelling

Signed-off-by: Xe Iaso <me@xeiaso.net>

---------

Signed-off-by: Xe Iaso <me@xeiaso.net>
2026-05-08 19:17:25 -04:00
.devcontainer chore: set up commitlint, husky, and prettier (#1451) 2026-02-15 08:19:12 -05:00
.github fix: patch GHSA-6wcg-mqvh-fcvg (#1616) 2026-05-08 19:17:25 -04:00
.husky chore: set up commitlint, husky, and prettier (#1451) 2026-02-15 08:19:12 -05:00
.vscode chore: set up commitlint, husky, and prettier (#1451) 2026-02-15 08:19:12 -05:00
cmd fix: patch GHSA-6wcg-mqvh-fcvg (#1616) 2026-05-08 19:17:25 -04:00
data feat(metrics): basic auth support (#1579) 2026-04-23 00:17:09 -04:00
decaymap performance: remove significant overhead of decaymap (#1420) 2026-01-22 19:03:17 +00:00
docs fix: patch GHSA-6wcg-mqvh-fcvg (#1616) 2026-05-08 19:17:25 -04:00
internal fix: patch GHSA-6wcg-mqvh-fcvg (#1616) 2026-05-08 19:17:25 -04:00
lib fix: patch GHSA-6wcg-mqvh-fcvg (#1616) 2026-05-08 19:17:25 -04:00
run fix(run): mark openrc service script as executable (#1272) 2025-11-13 22:14:21 -05:00
test chore: set up commitlint, husky, and prettier (#1451) 2026-02-15 08:19:12 -05:00
utils/cmd feat: iplist2rule utility command (#1373) 2025-12-29 17:10:17 +00:00
var initial import from /x/ monorepo 2025-03-17 19:33:07 -04:00
web feat(data): add Meta's web indexer used for AI purposes (#1573) 2026-04-21 16:56:23 -04:00
xess chore: set up commitlint, husky, and prettier (#1451) 2026-02-15 08:19:12 -05:00
.air.toml feat: add a strip-base-prefix option (#655) 2025-06-12 17:46:08 -04:00
.gitattributes fix(gitattributes): update pattern for generated files (#652) 2025-06-11 21:00:37 +00:00
.gitignore feat: implement localization system (#716) 2025-06-27 17:49:15 +00:00
.ko.yaml chore: set up commitlint, husky, and prettier (#1451) 2026-02-15 08:19:12 -05:00
.prettierignore docs: add AI coding tools policy (#1454) 2026-02-15 15:08:59 +00:00
AGENTS.md docs: add AI coding tools policy (#1454) 2026-02-15 15:08:59 +00:00
anubis.go fix: mend auth cookie name stutter (#1139) 2025-09-19 13:51:11 -04:00
Brewfile all: do not commit generated JS/CSS to source control (#148) 2025-03-28 14:55:25 -04:00
CLAUDE.md docs: add AI coding tools policy (#1454) 2026-02-15 15:08:59 +00:00
CONTRIBUTING.md chore: set up commitlint, husky, and prettier (#1451) 2026-02-15 08:19:12 -05:00
go.mod Revert "build(deps): bump the gomod group across 1 directory with 3 updates (…" (#1386) 2026-01-04 00:13:45 +00:00
go.sum Revert "build(deps): bump the gomod group across 1 directory with 3 updates (…" (#1386) 2026-01-04 00:13:45 +00:00
LICENSE initial import from /x/ monorepo 2025-03-17 19:33:07 -04:00
Makefile ci: purge govulncheck, it's less signal than i hoped (#1515) 2026-03-16 10:30:43 +00:00
package-lock.json build(deps): bump the npm group across 1 directory with 5 updates (#1559) 2026-04-13 23:31:39 -04:00
package.json build(deps): bump the npm group across 1 directory with 5 updates (#1559) 2026-04-13 23:31:39 -04:00
README.md chore(sponsors): add qwertiko and wenet 2026-04-10 21:36:40 -04:00
SECURITY.md chore: copy SECURITY.md from TecharoHQ/.github 2025-08-20 12:42:02 -04:00
VERSION chore: tag v1.25.0 2026-02-18 15:56:28 +00:00
yeetfile.js chore: set up commitlint, husky, and prettier (#1451) 2026-02-15 08:19:12 -05:00

Anubis

A smiling chibi dark-skinned anthro jackal with brown hair and tall ears looking victorious with a thumbs-up

enbyware GitHub Issues or Pull Requests by label GitHub go.mod Go version language count repo size GitHub Sponsors

Sponsors

Anubis is brought to you by sponsors and donors like:

Diamond Tier

Raptor Computing Systems Databento

Gold Tier

Unipromos Uvensys Distrust Gitea Prolocation Terminal Trove canine.tools Weblate Uberspace Wildbase Cat eyes over the word Emma in a serif font Cat eyes over the word Emma in a serif font ANEXIA Cloud Solutions embeDD GmbH Qwertiko Wenet

Overview

Anubis is a Web AI Firewall Utility that weighs the soul of your connection using one or more challenges in order to protect upstream resources from scraper bots.

This program is designed to help protect the small internet from the endless storm of requests that flood in from AI companies. Anubis is as lightweight as possible to ensure that everyone can afford to protect the communities closest to them.

Anubis is a bit of a nuclear response. This will result in your website being blocked from smaller scrapers and may inhibit "good bots" like the Internet Archive. You can configure bot policy definitions to explicitly allowlist them and we are working on a curated set of "known good" bots to allow for a compromise between discoverability and uptime.

In most cases, you should not need this and can probably get by using Cloudflare to protect a given origin. However, for circumstances where you can't or won't use Cloudflare, Anubis is there for you.

If you want to try this out, visit the Anubis documentation site at anubis.techaro.lol.

Support

If you run into any issues running Anubis, please open an issue. Please include all the information I would need to diagnose your issue.

For live chat, please join the Patreon and ask in the Patron discord in the channel #anubis.

Star History

Star History Chart

Packaging Status

Packaging status

Contributors

Made with contrib.rocks.