shadowaudit
Advanced tools
@@ -65,2 +65,64 @@ /** | ||
| export declare function detectRailsAuthInController(controllerContent: string, userAuthPatterns: string[]): boolean; | ||
| /** | ||
| * Parses the parent class name from a Ruby controller file. | ||
| * | ||
| * class Api::V1::UsersController < Api::BaseController | ||
| * → 'Api::BaseController' | ||
| * | ||
| * class UsersController < ApplicationController | ||
| * → 'ApplicationController' | ||
| * | ||
| * Returns null if: | ||
| * - No class declaration found | ||
| * - No parent class (class with no `<`) | ||
| * - Parent is a framework base class (ActionController::Base, ActionController::API) | ||
| * — these are the chain terminators | ||
| */ | ||
| export declare function parseParentClassName(controllerContent: string): string | null; | ||
| /** | ||
| * Converts a Ruby class name to a file path (relative to app/controllers/). | ||
| * | ||
| * Api::BaseController → 'api/base_controller.rb' | ||
| * Api::V1::UsersController → 'api/v1/users_controller.rb' | ||
| * ApplicationController → 'application_controller.rb' | ||
| * Api::Fasp::BaseController → 'api/fasp/base_controller.rb' | ||
| * | ||
| * Algorithm: | ||
| * 1. Split on `::` to get module path segments | ||
| * 2. The last segment is the class name — snake_case it | ||
| * 3. If it doesn't end with `_controller`, append `_controller.rb`; else append `.rb` | ||
| * 4. Join module segments + filename with `/` | ||
| */ | ||
| export declare function rubyClassNameToFilePath(className: string): string; | ||
| /** | ||
| * Walks the controller inheritance chain and returns true if ANY ancestor | ||
| * (including the controller itself) declares auth that is NOT skipped by | ||
| * a `skip_before_action` in the child or any intermediate controller. | ||
| * | ||
| * This fixes the v0.8.0 false-negative where Mastodon's `Api::BaseController` | ||
| * has `before_action :require_user!` but subclasses don't — the scanner only | ||
| * checked each file individually and missed inherited auth. | ||
| * | ||
| * v0.8.0 post-release fix #2: Also respects `skip_before_action` in child | ||
| * controllers that cancel inherited `before_action` from parents. E.g.: | ||
| * class HealthController < ApplicationController | ||
| * skip_before_action :require_user! # cancels parent's auth | ||
| * end | ||
| * | ||
| * Algorithm: | ||
| * 1. Walk the chain from child → parent → grandparent → ... | ||
| * 2. Collect ALL "skip_before_action :X" declarations from ALL controllers | ||
| * in the chain (child + intermediates) | ||
| * 3. For each controller, check if it has auth patterns | ||
| * 4. For each auth pattern found, check if it's skipped by ANY skip in the chain | ||
| * 5. If any auth pattern survives all skips, return true | ||
| * | ||
| * @param controllerContent Source of the controller file being checked | ||
| * @param userAuthPatterns User-configured auth patterns | ||
| * @param controllerFiles Map of controller file path → file content (for parent lookup) | ||
| * @param visited Set of file paths already visited (cycle detection) | ||
| * @param maxDepth Safety limit (default 10) to prevent infinite loops | ||
| * @param collectedSkips Accumulated skip patterns from child controllers (internal) | ||
| */ | ||
| export declare function detectRailsAuthWithInheritance(controllerContent: string, userAuthPatterns: string[], controllerFiles: Map<string, string>, visited?: Set<string>, maxDepth?: number, collectedSkips?: Set<string>): boolean; | ||
| //# sourceMappingURL=rails-auth.d.ts.map |
@@ -1,1 +0,1 @@ | ||
| {"version":3,"file":"rails-auth.d.ts","sourceRoot":"","sources":["../../src/scanners/rails-auth.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AAEH;;;;;;;;;;GAUG;AACH,eAAO,MAAM,mBAAmB,EAAE,SAAS,MAAM,EAyBhD,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,qBAAqB,EAAE,SAAS,MAAM,EASlD,CAAC;AAEF;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,2BAA2B,CACzC,iBAAiB,EAAE,MAAM,EACzB,gBAAgB,EAAE,MAAM,EAAE,GACzB,OAAO,CAuCT"} | ||
| {"version":3,"file":"rails-auth.d.ts","sourceRoot":"","sources":["../../src/scanners/rails-auth.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AAEH;;;;;;;;;;GAUG;AACH,eAAO,MAAM,mBAAmB,EAAE,SAAS,MAAM,EAoChD,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,qBAAqB,EAAE,SAAS,MAAM,EAyBlD,CAAC;AAEF;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,2BAA2B,CACzC,iBAAiB,EAAE,MAAM,EACzB,gBAAgB,EAAE,MAAM,EAAE,GACzB,OAAO,CAuCT;AAMD;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,oBAAoB,CAAC,iBAAiB,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAkB7E;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,uBAAuB,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAiBjE;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AACH,wBAAgB,8BAA8B,CAC5C,iBAAiB,EAAE,MAAM,EACzB,gBAAgB,EAAE,MAAM,EAAE,EAC1B,eAAe,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,EACpC,OAAO,GAAE,GAAG,CAAC,MAAM,CAAa,EAChC,QAAQ,GAAE,MAAW,EACrB,cAAc,GAAE,GAAG,CAAC,MAAM,CAAa,GACtC,OAAO,CAyCT"} |
@@ -33,2 +33,5 @@ "use strict"; | ||
| exports.detectRailsAuthInController = detectRailsAuthInController; | ||
| exports.parseParentClassName = parseParentClassName; | ||
| exports.rubyClassNameToFilePath = rubyClassNameToFilePath; | ||
| exports.detectRailsAuthWithInheritance = detectRailsAuthWithInheritance; | ||
| /** | ||
@@ -46,2 +49,3 @@ * Hardcoded Rails auth patterns — ALWAYS checked. | ||
| exports.RAILS_AUTH_PATTERNS = [ | ||
| // require_* family | ||
| 'before_action :require_user', | ||
@@ -54,2 +58,6 @@ 'before_action :require_login', | ||
| 'before_action :require_permission', | ||
| 'before_action :require_authentication', // FASP / custom | ||
| 'before_action :require_authenticated_user', // Mastodon Api::BaseController | ||
| 'before_action :require_authenticated_account', | ||
| // authenticate_* family (Devise) | ||
| 'before_action :authenticate_user', | ||
@@ -60,2 +68,3 @@ 'before_action :authenticate_admin', | ||
| 'before_action :authenticate_member', | ||
| // verify / check / ensure family | ||
| 'before_action :verify_user', | ||
@@ -66,7 +75,12 @@ 'before_action :check_auth', | ||
| 'before_action :ensure_user', | ||
| 'before_action :authorize', // Pundit / CanCan | ||
| 'before_action :ensure_authenticated', | ||
| // Pundit / CanCan | ||
| 'before_action :authorize', | ||
| 'before_action :authorize_resource', | ||
| 'before_action :load_and_authorize_resource', // CanCan | ||
| 'before_action :load_and_authorize_resource', | ||
| // HTTP Basic + CSRF API mode | ||
| 'http_basic_authenticate_with', | ||
| 'protect_from_forgery with: :null_session', | ||
| // Doorkeeper OAuth (token-based auth — often in lambdas) | ||
| 'doorkeeper_authorize!', | ||
| // Devise controllers (auth endpoints themselves) | ||
@@ -82,3 +96,15 @@ 'devise ', | ||
| 'skip_before_action :require_login', | ||
| 'skip_before_action :require_admin', | ||
| 'skip_before_action :require_staff', | ||
| 'skip_before_action :require_moderator', | ||
| 'skip_before_action :require_role', | ||
| 'skip_before_action :require_permission', | ||
| 'skip_before_action :require_authentication', | ||
| 'skip_before_action :require_authenticated_user', | ||
| 'skip_before_action :require_authenticated_account', | ||
| 'skip_before_action :authenticate_user', | ||
| 'skip_before_action :authenticate_admin', | ||
| 'skip_before_action :authenticate_account', | ||
| 'skip_before_action :authenticate_person', | ||
| 'skip_before_action :authenticate_member', | ||
| 'skip_before_action :verify_user', | ||
@@ -89,2 +115,6 @@ 'skip_before_action :check_auth', | ||
| 'skip_before_action :ensure_user', | ||
| 'skip_before_action :ensure_authenticated', | ||
| 'skip_before_action :authorize', | ||
| 'skip_before_action :authorize_resource', | ||
| 'skip_before_action :load_and_authorize_resource', | ||
| ]; | ||
@@ -147,3 +177,205 @@ /** | ||
| } | ||
| // ───────────────────────────────────────────────────────────────────── | ||
| // v0.8.0 post-release fix: Controller inheritance chain walking | ||
| // ───────────────────────────────────────────────────────────────────── | ||
| /** | ||
| * Parses the parent class name from a Ruby controller file. | ||
| * | ||
| * class Api::V1::UsersController < Api::BaseController | ||
| * → 'Api::BaseController' | ||
| * | ||
| * class UsersController < ApplicationController | ||
| * → 'ApplicationController' | ||
| * | ||
| * Returns null if: | ||
| * - No class declaration found | ||
| * - No parent class (class with no `<`) | ||
| * - Parent is a framework base class (ActionController::Base, ActionController::API) | ||
| * — these are the chain terminators | ||
| */ | ||
| function parseParentClassName(controllerContent) { | ||
| // Match: class FooController < BarController OR class Foo < Bar::Baz | ||
| // Handle multi-line class declarations and module nesting. | ||
| const match = controllerContent.match(/^\s*class\s+[\w:]+\s*<\s*([\w:]+)/m); | ||
| if (!match) | ||
| return null; | ||
| const parent = match[1]; | ||
| // Framework base classes — chain terminators (no auth to inherit) | ||
| // NOTE: ApplicationController is NOT a terminator — apps often put | ||
| // before_action :require_user! there, and we should walk into it. | ||
| const FRAMEWORK_BASES = new Set([ | ||
| 'ActionController::Base', | ||
| 'ActionController::API', | ||
| 'ActionController::Metal', | ||
| ]); | ||
| if (FRAMEWORK_BASES.has(parent)) | ||
| return null; | ||
| return parent; | ||
| } | ||
| /** | ||
| * Converts a Ruby class name to a file path (relative to app/controllers/). | ||
| * | ||
| * Api::BaseController → 'api/base_controller.rb' | ||
| * Api::V1::UsersController → 'api/v1/users_controller.rb' | ||
| * ApplicationController → 'application_controller.rb' | ||
| * Api::Fasp::BaseController → 'api/fasp/base_controller.rb' | ||
| * | ||
| * Algorithm: | ||
| * 1. Split on `::` to get module path segments | ||
| * 2. The last segment is the class name — snake_case it | ||
| * 3. If it doesn't end with `_controller`, append `_controller.rb`; else append `.rb` | ||
| * 4. Join module segments + filename with `/` | ||
| */ | ||
| function rubyClassNameToFilePath(className) { | ||
| const parts = className.split('::'); | ||
| const classNamePart = parts.pop(); // last segment is the class | ||
| const moduleParts = parts.map((p) => p.toLowerCase()); | ||
| // Snake_case the class name: BaseController → base_controller, V1 → v1 | ||
| let snake = classNamePart | ||
| .replace(/([A-Z]+)([A-Z][a-z])/g, '$1_$2') | ||
| .replace(/([a-z\d])([A-Z])/g, '$1_$2') | ||
| .toLowerCase(); | ||
| // Ensure it ends with _controller.rb | ||
| if (!snake.endsWith('_controller')) { | ||
| snake += '_controller'; | ||
| } | ||
| return [...moduleParts, `${snake}.rb`].join('/'); | ||
| } | ||
| /** | ||
| * Walks the controller inheritance chain and returns true if ANY ancestor | ||
| * (including the controller itself) declares auth that is NOT skipped by | ||
| * a `skip_before_action` in the child or any intermediate controller. | ||
| * | ||
| * This fixes the v0.8.0 false-negative where Mastodon's `Api::BaseController` | ||
| * has `before_action :require_user!` but subclasses don't — the scanner only | ||
| * checked each file individually and missed inherited auth. | ||
| * | ||
| * v0.8.0 post-release fix #2: Also respects `skip_before_action` in child | ||
| * controllers that cancel inherited `before_action` from parents. E.g.: | ||
| * class HealthController < ApplicationController | ||
| * skip_before_action :require_user! # cancels parent's auth | ||
| * end | ||
| * | ||
| * Algorithm: | ||
| * 1. Walk the chain from child → parent → grandparent → ... | ||
| * 2. Collect ALL "skip_before_action :X" declarations from ALL controllers | ||
| * in the chain (child + intermediates) | ||
| * 3. For each controller, check if it has auth patterns | ||
| * 4. For each auth pattern found, check if it's skipped by ANY skip in the chain | ||
| * 5. If any auth pattern survives all skips, return true | ||
| * | ||
| * @param controllerContent Source of the controller file being checked | ||
| * @param userAuthPatterns User-configured auth patterns | ||
| * @param controllerFiles Map of controller file path → file content (for parent lookup) | ||
| * @param visited Set of file paths already visited (cycle detection) | ||
| * @param maxDepth Safety limit (default 10) to prevent infinite loops | ||
| * @param collectedSkips Accumulated skip patterns from child controllers (internal) | ||
| */ | ||
| function detectRailsAuthWithInheritance(controllerContent, userAuthPatterns, controllerFiles, visited = new Set(), maxDepth = 10, collectedSkips = new Set()) { | ||
| // Collect skip_before_action patterns from THIS controller | ||
| // (they apply to inherited before_action from parents) | ||
| collectSkipPatterns(controllerContent, collectedSkips); | ||
| // Check this controller's own auth (respecting skips collected so far) | ||
| if (hasUnskippedAuth(controllerContent, userAuthPatterns, collectedSkips)) { | ||
| return true; | ||
| } | ||
| if (maxDepth <= 0) | ||
| return false; | ||
| // Parse parent class name | ||
| const parentClassName = parseParentClassName(controllerContent); | ||
| if (!parentClassName) { | ||
| return false; | ||
| } | ||
| // Convert parent class name to file path | ||
| const parentFilePath = rubyClassNameToFilePath(parentClassName); | ||
| // Cycle detection | ||
| if (visited.has(parentFilePath)) | ||
| return false; | ||
| visited.add(parentFilePath); | ||
| // Look up parent file content | ||
| const parentContent = controllerFiles.get(parentFilePath); | ||
| if (!parentContent) { | ||
| return false; | ||
| } | ||
| // Recurse into parent, passing the accumulated skips (child's skips | ||
| // apply to parent's before_action too) | ||
| return detectRailsAuthWithInheritance(parentContent, userAuthPatterns, controllerFiles, visited, maxDepth - 1, collectedSkips); | ||
| } | ||
| /** | ||
| * Collects all WHOLE-CONTROLLER `skip_before_action :pattern` declarations | ||
| * from a controller file and adds them to the `skips` set. | ||
| * | ||
| * v0.8.0 documented limitation: per-action skips (with `only:` / `except:`) | ||
| * are NOT honored — only whole-controller skips (without `only:` / `except:`) | ||
| * are collected. This matches the behavior of detectRailsAuthInController. | ||
| * | ||
| * Extracts the symbol name (e.g. `require_user!`) from lines like: | ||
| * skip_before_action :require_user! ← collected (whole-controller) | ||
| * skip_before_action :require_user!, only: [:index] ← NOT collected (per-action) | ||
| */ | ||
| function collectSkipPatterns(controllerContent, skips) { | ||
| const lines = controllerContent.split('\n'); | ||
| for (const line of lines) { | ||
| // Only collect skips WITHOUT only: or except: (whole-controller skips) | ||
| if (line.includes('only:') || line.includes('except:')) | ||
| continue; | ||
| // Match: skip_before_action :symbol_name | ||
| const match = line.match(/skip_before_action\s+:(\w+!?)/); | ||
| if (match) { | ||
| skips.add(match[1]); | ||
| } | ||
| } | ||
| } | ||
| /** | ||
| * Checks if a controller file has auth patterns that are NOT skipped by | ||
| * any pattern in the `skips` set. | ||
| * | ||
| * This is like detectRailsAuthInController, but it also filters out auth | ||
| * patterns whose symbol name appears in the skips set (from child controllers). | ||
| */ | ||
| function hasUnskippedAuth(controllerContent, userAuthPatterns, skips) { | ||
| // Check user-configured patterns first | ||
| for (const p of userAuthPatterns) { | ||
| if (p && controllerContent.includes(p)) | ||
| return true; | ||
| } | ||
| // Check hardcoded patterns | ||
| for (const p of exports.RAILS_AUTH_PATTERNS) { | ||
| if (controllerContent.includes(p)) { | ||
| // Non-before_action patterns (http_basic, protect_from_forgery, devise, | ||
| // doorkeeper_authorize!) can't be skipped via skip_before_action | ||
| if (!p.startsWith('before_action')) { | ||
| return true; | ||
| } | ||
| // Extract the symbol name from the before_action pattern | ||
| // e.g. 'before_action :require_user' → 'require_user' | ||
| const symbolMatch = p.match(/before_action\s+:(\w+)/); | ||
| if (!symbolMatch) | ||
| continue; | ||
| const symbolName = symbolMatch[1]; | ||
| // Check if this symbol is in the skips set | ||
| // (child has skip_before_action :require_user! which matches :require_user) | ||
| const isSkipped = Array.from(skips).some((skip) => skip.startsWith(symbolName)); | ||
| if (isSkipped) { | ||
| // This auth pattern is skipped by a child — continue checking other patterns | ||
| continue; | ||
| } | ||
| // Also check for skip_before_action in THIS controller (whole-controller skip) | ||
| const skipMatch = p.replace('before_action', 'skip_before_action'); | ||
| const lines = controllerContent.split('\n'); | ||
| let localSkipped = false; | ||
| for (const line of lines) { | ||
| if (line.includes(skipMatch) && !line.includes('only:') && !line.includes('except:')) { | ||
| localSkipped = true; | ||
| break; | ||
| } | ||
| } | ||
| if (!localSkipped) { | ||
| return true; | ||
| } | ||
| } | ||
| } | ||
| return false; | ||
| } | ||
| /** | ||
| * Escapes a string for use in a RegExp. | ||
@@ -150,0 +382,0 @@ */ |
@@ -1,1 +0,1 @@ | ||
| {"version":3,"file":"rails-auth.js","sourceRoot":"","sources":["../../src/scanners/rails-auth.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;;;AAyEH,kEA0CC;AAjHD;;;;;;;;;;GAUG;AACU,QAAA,mBAAmB,GAAsB;IACpD,6BAA6B;IAC7B,8BAA8B;IAC9B,8BAA8B;IAC9B,8BAA8B;IAC9B,kCAAkC;IAClC,6BAA6B;IAC7B,mCAAmC;IACnC,kCAAkC;IAClC,mCAAmC;IACnC,qCAAqC;IACrC,oCAAoC;IACpC,oCAAoC;IACpC,4BAA4B;IAC5B,2BAA2B;IAC3B,4BAA4B;IAC5B,6BAA6B;IAC7B,4BAA4B;IAC5B,0BAA0B,EAAE,kBAAkB;IAC9C,mCAAmC;IACnC,4CAA4C,EAAE,SAAS;IACvD,8BAA8B;IAC9B,0CAA0C;IAC1C,iDAAiD;IACjD,SAAS;CACV,CAAC;AAEF;;;GAGG;AACU,QAAA,qBAAqB,GAAsB;IACtD,kCAAkC;IAClC,mCAAmC;IACnC,uCAAuC;IACvC,iCAAiC;IACjC,gCAAgC;IAChC,iCAAiC;IACjC,kCAAkC;IAClC,iCAAiC;CAClC,CAAC;AAEF;;;;;;;;;;;;;;;;;GAiBG;AACH,SAAgB,2BAA2B,CACzC,iBAAyB,EACzB,gBAA0B;IAE1B,yEAAyE;IACzE,KAAK,MAAM,CAAC,IAAI,gBAAgB,EAAE,CAAC;QACjC,IAAI,CAAC,IAAI,iBAAiB,CAAC,QAAQ,CAAC,CAAC,CAAC;YAAE,OAAO,IAAI,CAAC;IACtD,CAAC;IAED,2BAA2B;IAC3B,KAAK,MAAM,CAAC,IAAI,2BAAmB,EAAE,CAAC;QACpC,IAAI,iBAAiB,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC;YAClC,8DAA8D;YAC9D,wEAAwE;YACxE,uEAAuE;YACvE,IAAI,CAAC,CAAC,CAAC,UAAU,CAAC,eAAe,CAAC,EAAE,CAAC;gBACnC,OAAO,IAAI,CAAC;YACd,CAAC;YAED,0EAA0E;YAC1E,wCAAwC;YACxC,4EAA4E;YAC5E,wFAAwF;YACxF,MAAM,SAAS,GAAG,CAAC,CAAC,OAAO,CAAC,eAAe,EAAE,oBAAoB,CAAC,CAAC;YACnE,MAAM,KAAK,GAAG,iBAAiB,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YAC5C,IAAI,OAAO,GAAG,KAAK,CAAC;YACpB,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;gBACzB,IAAI,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC;oBACrF,mEAAmE;oBACnE,qEAAqE;oBACrE,OAAO,GAAG,IAAI,CAAC;oBACf,MAAM;gBACR,CAAC;YACH,CAAC;YACD,IAAI,CAAC,OAAO,EAAE,CAAC;gBACb,OAAO,IAAI,CAAC;YACd,CAAC;YACD,8DAA8D;QAChE,CAAC;IACH,CAAC;IAED,OAAO,KAAK,CAAC;AACf,CAAC;AAED;;GAEG;AACH,SAAS,WAAW,CAAC,CAAS;IAC5B,OAAO,CAAC,CAAC,OAAO,CAAC,qBAAqB,EAAE,MAAM,CAAC,CAAC;AAClD,CAAC"} | ||
| {"version":3,"file":"rails-auth.js","sourceRoot":"","sources":["../../src/scanners/rails-auth.ts"],"names":[],"mappings":"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"} |
@@ -1,1 +0,1 @@ | ||
| {"version":3,"file":"rails.d.ts","sourceRoot":"","sources":["../../src/scanners/rails.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,EAAE,MAAM,UAAU,CAAC;AAiOjC,UAAU,WAAW;IACnB,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;IACb,gBAAgB,EAAE,MAAM,CAAC;IACzB,UAAU,EAAE,OAAO,CAAC;IACpB,IAAI,EAAE,MAAM,CAAC;CACd;AAigBD;;;;;;GAMG;AACH,wBAAgB,mBAAmB,CACjC,IAAI,EAAE,MAAM,EACZ,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,MAAM,GACd,WAAW,EAAE,CAoHf;AAiBD;;;;;;;;;;;;;GAaG;AACH,wBAAsB,SAAS,CAC7B,GAAG,EAAE,MAAM,EACX,MAAM,EAAE,MAAM,EAAE,EAChB,YAAY,EAAE,MAAM,EAAE,EACtB,WAAW,GAAE,MAA4B,GACxC,OAAO,CAAC,KAAK,EAAE,CAAC,CAuGlB;AAeD,eAAe,SAAS,CAAC"} | ||
| {"version":3,"file":"rails.d.ts","sourceRoot":"","sources":["../../src/scanners/rails.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,EAAE,MAAM,UAAU,CAAC;AAiOjC,UAAU,WAAW;IACnB,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;IACb,gBAAgB,EAAE,MAAM,CAAC;IACzB,UAAU,EAAE,OAAO,CAAC;IACpB,IAAI,EAAE,MAAM,CAAC;CACd;AA8hBD;;;;;;GAMG;AACH,wBAAgB,mBAAmB,CACjC,IAAI,EAAE,MAAM,EACZ,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,MAAM,GACd,WAAW,EAAE,CAoHf;AAiBD;;;;;;;;;;;;;GAaG;AACH,wBAAsB,SAAS,CAC7B,GAAG,EAAE,MAAM,EACX,MAAM,EAAE,MAAM,EAAE,EAChB,YAAY,EAAE,MAAM,EAAE,EACtB,WAAW,GAAE,MAA4B,GACxC,OAAO,CAAC,KAAK,EAAE,CAAC,CAyHlB;AAeD,eAAe,SAAS,CAAC"} |
+53
-12
@@ -229,4 +229,23 @@ "use strict"; | ||
| const isRedirect = REDIRECT_REGEX.test(line); | ||
| const rawControllerAction = extractControllerAction(line) || 'unknown#unknown'; | ||
| // v0.8.0: Apply module path from current namespace/scope context | ||
| let rawControllerAction = extractControllerAction(line); | ||
| // v0.8.0 post-release fix: If no explicit to: mapping AND we're inside a | ||
| // resources block, infer the controller from the current resource context. | ||
| // E.g. `post :read` inside `resources :annual_reports do member do ... end` | ||
| // → controllerAction = 'api/v1/annual_reports#read' | ||
| if (!rawControllerAction) { | ||
| const ctx = currentCtx(state); | ||
| if (ctx.currentResource) { | ||
| const fullControllerName = ctx.modulePath | ||
| ? `${ctx.modulePath}/${ctx.currentResource.name}` | ||
| : ctx.currentResource.name; | ||
| // routePath is the action name (e.g. 'read', 'generate', 'state') | ||
| // when it's a symbol form (group 4 match) | ||
| const actionName = simpleMatch[4] || routePath.replace(/^\//, ''); | ||
| rawControllerAction = `${fullControllerName}#${actionName}`; | ||
| } | ||
| else { | ||
| rawControllerAction = 'unknown#unknown'; | ||
| } | ||
| } | ||
| // Apply module path from current namespace/scope context | ||
| const controllerAction = applyModulePath(rawControllerAction, currentCtx(state).modulePath); | ||
@@ -415,5 +434,13 @@ state.routes.push({ | ||
| } | ||
| // v0.8.0 post-release fix: Rails singular `resource :preview` maps to | ||
| // `PreviewsController` (PLURAL), not `PreviewController`. This is a Rails | ||
| // convention — singular resources use plural controller names. | ||
| // Simple pluralization: append 's' if name doesn't already end in 's'. | ||
| // (Doesn't handle 'y' → 'ies' or irregular plurals — v0.9.0 goal.) | ||
| const controllerName = isSingular && !name.endsWith('s') | ||
| ? `${name}s` | ||
| : name; | ||
| const fullControllerName = ctx.modulePath | ||
| ? `${ctx.modulePath}/${name}` | ||
| : name; | ||
| ? `${ctx.modulePath}/${controllerName}` | ||
| : controllerName; | ||
| for (const r of expanded) { | ||
@@ -783,5 +810,5 @@ // For plural resources, the pathSuffix may contain :id — we need to | ||
| // ─── Step 4: Find and read all controller files (for auth detection) ─── | ||
| let controllerFiles = []; | ||
| let controllerFilesList = []; | ||
| try { | ||
| controllerFiles = await glob('app/controllers/**/*.rb', { | ||
| controllerFilesList = await glob('app/controllers/**/*.rb', { | ||
| cwd: absDir, | ||
@@ -796,7 +823,21 @@ absolute: true, | ||
| } | ||
| controllerFiles = controllerFiles.filter((f) => !shouldExcludeFile(f, ignore)); | ||
| const controllerReadResults = await (0, parallel_1.readFilesParallel)(controllerFiles, concurrency); | ||
| // Build a map: controllerName (e.g. 'users') → hasAuth boolean | ||
| // We read each controller file and look for before_action :require_user!, | ||
| // before_action :authenticate_user!, etc. | ||
| controllerFilesList = controllerFilesList.filter((f) => !shouldExcludeFile(f, ignore)); | ||
| const controllerReadResults = await (0, parallel_1.readFilesParallel)(controllerFilesList, concurrency); | ||
| // v0.8.0 post-release fix: Build a map of ALL controller file paths → content | ||
| // so detectRailsAuthWithInheritance can walk the parent chain. | ||
| // Key format: 'api/v1/users_controller.rb' (relative to app/controllers/) | ||
| const controllerFileContents = new Map(); | ||
| for (const { absPath, content } of controllerReadResults) { | ||
| if (content === null) | ||
| continue; | ||
| const relPath = path.relative(absDir, absPath).replace(/\\/g, '/'); | ||
| // Strip 'app/controllers/' prefix so the key matches rubyClassNameToFilePath() output | ||
| const controllerKey = relPath.replace(/^app\/controllers\//, ''); | ||
| controllerFileContents.set(controllerKey, content); | ||
| } | ||
| // Build a map: controllerName (e.g. 'api/v1/users') → hasAuth boolean | ||
| // v0.8.0 post-release fix: Use detectRailsAuthWithInheritance to walk the | ||
| // parent chain (e.g. Api::V1::UsersController → Api::BaseController → ApplicationController) | ||
| // This fixes the false-negative where Mastodon's Api::BaseController has | ||
| // before_action :require_user! but subclasses don't repeat it. | ||
| const controllerAuthMap = new Map(); | ||
@@ -812,3 +853,3 @@ for (const { absPath, content } of controllerReadResults) { | ||
| .replace(/_controller$/, ''); | ||
| const hasAuth = (0, rails_auth_1.detectRailsAuthInController)(content, authPatterns); | ||
| const hasAuth = (0, rails_auth_1.detectRailsAuthWithInheritance)(content, authPatterns, controllerFileContents); | ||
| controllerAuthMap.set(controllerName, hasAuth); | ||
@@ -815,0 +856,0 @@ } |
@@ -1,1 +0,1 @@ | ||
| {"version":3,"file":"rails.js","sourceRoot":"","sources":["../../src/scanners/rails.ts"],"names":[],"mappings":"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"} | ||
| {"version":3,"file":"rails.js","sourceRoot":"","sources":["../../src/scanners/rails.ts"],"names":[],"mappings":"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"} |
+1
-1
| { | ||
| "name": "shadowaudit", | ||
| "version": "0.8.0", | ||
| "version": "0.8.1", | ||
| "description": "Static API security scanner — detects undocumented and unauthenticated Express.js routes before they reach production", | ||
@@ -5,0 +5,0 @@ "main": "dist/index.js", |
+3
-3
@@ -43,3 +43,3 @@ # shadowaudit | ||
| ```yaml | ||
| - uses: darkmaster0345/shadow-Audit@v0.8.0 | ||
| - uses: darkmaster0345/shadow-Audit@v0.8.1 | ||
| with: | ||
@@ -308,3 +308,3 @@ dir: './src' | ||
| "tool": "shadowaudit", | ||
| "version": "0.8.0", | ||
| "version": "0.8.1", | ||
| "timestamp": "2026-01-15T12:00:00.000Z", | ||
@@ -347,3 +347,3 @@ "stats": { "total": 7, "documented": 5, "undocumented": 2, "critical": 2, "high": 0, "info": 0 } | ||
| ╔════════════════════════════════╗ | ||
| ║ shadowaudit v0.8.0 ║ | ||
| ║ shadowaudit v0.8.1 ║ | ||
| ║ API Shadow Route Scanner ║ | ||
@@ -350,0 +350,0 @@ ╚════════════════════════════════╝ |
URL strings
Supply chain riskPackage contains fragments of external URLs or IP addresses, which the package may be accessing at runtime.
URL strings
Supply chain riskPackage contains fragments of external URLs or IP addresses, which the package may be accessing at runtime.
539835
4.28%8069
4.33%