orris-inc 229e1112e5 fix: harden auth against enumeration, brute force and credential logging
Password login revealed account state before verifying the password: locked,
OAuth-only and inactive accounts returned distinct errors, letting an attacker
enumerate accounts by submitting any password. Reorder the checks so lockout
and OAuth-only accounts return the generic credential error, and only surface
an inactive-account error after the password is confirmed.

Sensitive auth endpoints shared a single lenient per-IP limiter and the OAuth
init/callback routes had none. Add a stricter dedicated limit for login,
forgot-password and reset-password, and apply the default limiter to the OAuth
routes.

The subscription generator logged the full subscription token in plaintext;
truncate it for logging like the repository layer already does.
2026-06-10 11:10:18 +08:00

Orris

Quick Install

curl -fsSL https://raw.githubusercontent.com/orris-inc/orris/main/install.sh | bash

Or specify domain and admin credentials:

curl -fsSL https://raw.githubusercontent.com/orris-inc/orris/main/install.sh | \
  DOMAIN=orris.example.com \
  ADMIN_EMAIL=admin@example.com \
  ADMIN_PASSWORD=your-password \
  bash

Detailed Installation

See INSTALL.md for detailed installation instructions.

Update

Update to the latest version:

# From your Orris installation directory
./install.sh update

# Or remotely
curl -fsSL https://raw.githubusercontent.com/orris-inc/orris/main/install.sh | bash -s -- update

This will:

  1. Pull the latest Docker images
  2. Run database migrations
  3. Restart all services

Common Commands

docker compose ps        # Check status
docker compose logs -f   # View logs
docker compose down      # Stop services
docker compose up -d     # Start services
./install.sh update      # Update to latest version
./install.sh help        # Show help

License

MIT License

Description
Orris —— 面向专线 / IX 拼车的中转与订阅管理平台 梯子 科学上网
Readme MIT 56 MiB
Languages
Go 99%
Shell 0.8%
Makefile 0.2%