🎩 You're Invited:Meet the Socket team at Black Hat in Las Vegas, August 3-6.RSVP
Sign In

shadowaudit

Package Overview
Dependencies
Maintainers
1
Versions
19
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

shadowaudit - npm Package Compare versions

Comparing version
0.8.0
to
0.8.1
+62
-0
dist/scanners/rails-auth.d.ts

@@ -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

@@ -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"}

@@ -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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"}
{
"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",

@@ -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 @@ ╚════════════════════════════════╝