code.vikunja.io/api の脆弱性 (CVE-2026-91973)
概要
code.vikunja.io/api に 脆弱性 (CVE-2026-91973) が存在。機密情報が外部に流出する可能性があります。POST /api/v1/login 経由で攻撃可能。対策: 2.6.0 以上に更新。
原文の説明
取得元が公開している説明をそのまま載せています (多くは英語)。
Summary
The /dav, /.well-known, and /feeds groups are registered on the root Echo instance with only BasicAuth and no rate limiter. CalDAV BasicAuth accepts the plain account password, so password guessing over /dav is unbounded and never returns 429, while /api/v1/login is throttled from the tenth attempt. The only anti-brute-force control on the instance is therefore bypassable.
Details
pkg/routes/routes.go (~lines 238-249) registers /.well-known, /dav, and /feeds with middleware.BasicAuth(...) and nothing else; registerCalDavRoutes adds no limiter. pkg/routes/caldav/auth.go (~lines 88-93) falls through to user.CheckUserCredentials with the plain account password when no CalDAV token matches. In contrast, /register, /login, etc. are wrapped by unauthRateLimit() — an unconditional 10/min/IP pre-auth floor that ignores ratelimit.enabled (default false).
TOTP-enabled accounts and bot users are correctly refused, so this targets password-only accounts.
PoC (verified at runtime against v2.5.0)
POST /api/v1/login x25 wrong passwords -> 429 from attempt 2 (throttled)
PROPFIND /dav/principals/{user}/ x60 wrong passwords -> 401 x60, 429 x0
GET /feeds/notifications.atom x30 wrong passwords -> 401 x30, 429 x0
PROPFIND /dav/... with correct password -> 207 (proves the 401s are real auth failures)
Impact
The anti-brute-force floor guarding /login is entirely absent on /dav, /feeds, and /.well-known, giving an un…
出典: NIST National Vulnerability Database NVD GitHub Advisory
自動生成の要約
取得元のデータ (CVSS・CWE・影響バージョンなど) から SecPulse が定型文で組み立てた要約です。AI は使っていません。正確な内容は下の原文と参照URLで確認してください。
code.vikunja.io/api という製品で、CVE-2026-91973 という番号がついた弱点 (脆弱性) が見つかりました。
悪い人がインターネット越しに POST /api/v1/login のような特定の入り口を狙うことで、製品の中を不正に操作できてしまいます。
機密情報が外部に流出する可能性があります。重要度は CVSS スコア 7.5/10 です。
対策: code.vikunja.io/api を 2.6.0 以上に更新してください。
心配なら、システム担当者や製品の公式サイトで「code.vikunja.io/api CVE-2026-91973」を検索してください。
CVE-2026-91973 (code.vikunja.io/api) — CWE-307 / CVSS v3 7.5
攻撃ベクター: ネットワーク経由 (リモート攻撃可) / 認証不要 / 被害者操作不要
脆弱箇所: POST /api/v1/login / GET /feeds/notifications.atom / registerCalDavRoutes / user.CheckUserCredentials
修正バージョン: 2.6.0 (即時適用推奨)
対応方針: 1) SBOMで影響バージョン横断確認, 2) ステージング検証→本番更新, 3) WAF/プロキシで該当エンドポイントを監視, 4) ログでIOC調査。
参考: 当ページの『参照URL』の GHSA / vendor advisory / patched release を参照。
code.vikunja.io/api に 脆弱性 (CWE-307) があります。攻撃者は POST /api/v1/login を経由して脆弱な処理に到達し、認証なしで悪用できます。
code.vikunja.io/api の影響バージョンはベンダーのアドバイザリで確認してください。攻撃箇所: POST /api/v1/login / GET /feeds/notifications.atom / registerCalDavRoutes / user.CheckUserCredentials。
重要度: 重要 (CVSS 7.5/10)。機密情報が外部に流出する可能性があります。
2.6.0 に更新してください。
修正版が未提供時は、影響機能の無効化・WAFルール・ネットワークACLでの遮断を検討。
Webサーバ・プロキシ・WAFのアクセスログで POST /api/v1/login への異常リクエスト (不正な認証ヘッダ、SQL構文)を検索。 依存ファイル (package-lock.json/requirements.txt/go.sum) で code.vikunja.io/api のバージョンを横断確認。
対応アクション
SOC/SREチームが順番に実行すべき具体的なステップとコマンド例
-
1影響範囲の特定 identify
grep -r 'code.vikunja.io/api' . | grep -v node_modulesリポジトリと本番環境の依存ファイル (package-lock.json / requirements.txt / go.sum / Gemfile.lock 等) で
code.vikunja.io/apiを grep し、稼働しているサービス・バージョンを把握する。 -
2ログでの侵入兆候検索 detect
grep 'POST /api/v1/login' /var/log/nginx/access.log | grep -E '(unusual_payload|sqli_pattern)'アクセスログで
POST /api/v1/loginへの異常なリクエスト (不正な認証ヘッダ・SQLメタ文字)を過去 30〜90日分捜索。WAF/SIEM があれば該当パスのアラート発火履歴を確認。 -
3パッチ適用 patch
Upgrade code.vikunja.io/api to 2.6.0ステージング環境で 2.6.0 に上げて回帰テスト → 本番反映。回帰テストはアプリの主要ハッピーパスと、Step 2 で見つけた異常検知の続報チェックを含めること。
-
4事後検証 verify
Replay attack against POST /api/v1/login on staging to confirm patch closes the vectorパッチ適用後、ステージングで PoC または同等の悪用パターンを再現して脆弱性が閉じたことを確認。本番では Step 2 と同じログクエリでアラート再発が無いか継続監視。
影響パッケージ
参照URL
- web github.com
- web vulncheck.com
- web nvd.nist.gov
- web github.com
- web github.com
- web github.com
- web github.com