Conversation
- Modified app/api/settings_api.rb to require authentication for sensitive endpoints - Created a new public endpoint for non-sensitive settings - Added authentication requirement to privacy settings endpoint - Added SettingsApi to the authentication helpers list in app/api/api_root.rb - Prevents unauthorized access to system configuration
Added authentication check for /settings/privacy endpoint
|
Why are these settings considered sensitive? |
I marked this as a vulnerability because the previous behavior exposed internal system configuration data to unauthenticated users. The /api/settings endpoint allowed anyone to see which integrations (TurnItIn, D2L, Overseer, etc.) were enabled. This is considered sensitive because: Attack Surface Discovery: Knowing which integrations are enabled gives an attacker reconnaissance information (e.g., which third-party services to target or spoof). Exploitation Risk: An attacker could craft targeted phishing or exploit known vulnerabilities in those integrations based on this info. Security Best Practice: According to OWASP’s API Security Top 10 : API3:2023 Excessive Data Exposure So while the fix also resolves a functional bug (unauthorized access), it directly mitigates an information disclosure vulnerability that was flagged in the security audit. That’s why I classified it as a security sensitive change. |
Description
Upstream PR: thoth-tech#67
This PR addresses a critical vulnerability identified in the security audit report (ref: BAC.md).
The Settings API was exposing sensitive configuration data without proper authentication, which could allow unauthorized users to access system configuration details.
Fixes # (issue)
Type of change
How Has This Been Tested?
Security Impact:
This fix prevents unauthorized users from accessing sensitive system configuration details. Previously, an attacker could determine which integrations were enabled (TurnItIn, D2L, Overseer) and potentially use this information to target specific attack vectors. The fix now ensures proper access controls are in place while still allowing the application to function normally.
Checklist:
If you have any questions, please contact @macite or @jakerenzella.