๐ Improper Access Control in Spring Boot Actuator
How a Misconfigured Endpoint Exposed Internal Application Configuration
๐ Improper Access Control in Spring Boot Actuator
How a Misconfigured Endpoint Exposed Internal Application Configuration
๐ Introduction
During a security assessment of a B2B customer portal, I discovered an Improper Access Control vulnerability (CWE-284) affecting internal management endpoints.
The issue allowed low-privileged users to access sensitive configuration data that should only be available to administrators.
๐ฏ Target Overview
The application is built using Spring Boot and exposes internal management endpoints via: /management/* These endpoints are typically used for: โข Monitoring โข Debugging โข Configuration inspection
๐ Step 1 โ Verifying Role-Based Access Control
Before digging deeper, I verified whether RBAC (Role-Based Access Control) was properly implemented.
โ Admin-Only Endpoint Test GET /api/customers/{id}/users
๐ Behavior
โข Admin โ 200 OK
โข User โ 401 Unauthorized
โ๏ธ This confirmed that authorization exists and works correctly in some parts of the application.
๐ Step 2 โ JWT Analysis
Next, I analyzed the JWT tokens to understand permission differences.
๐ Admin Token โข Multiple enabled modules โข Extended privileges
๐ค Regular User Token โข Limited modules โข Restricted access
๐ง This confirmed proper privilege separation at the token level.
โธป
๐ฅ Step 3 โ Discovering the Vulnerable Endpoint
While testing internal endpoints, I found: GET /management/configprops ๐ Results โข Admin โ 200 OK โข User โ 200 OK โข Low-priv user โ 200 OK
โ All roles received identical sensitive data
๐งช Proof of Concept
GET /management/configprops HTTP/2 Host: <redacted> Cookie: access-token=<low-priv-user>
๐ฆ Exposed Information
The response included: โข Application configuration โข Feature flags โข Security-related settings โข Internal API paths โข Infrastructure metadata
โธป
โ ๏ธ Impact Analysis
Even though the endpoint is read-only, the impact is serious.
โธป
๐ Information Disclosure
Sensitive internal data is exposed to unauthorized users.
โธป
๐งญ Attack Surface Expansion
Attackers can: โข Map internal architecture โข Discover hidden endpoints โข Identify enabled modules
โธป
๐ Attack Chaining
This can lead to: โข Privilege escalation โข Remote Code Execution (RCE) โข Misconfiguration exploitation
โธป
โ Security Violation
โข Breaks Least Privilege Principle โข Weakens Defense in Depth
โธป
๐ง Root Cause
Missing authorization checks on Spring Boot Actuator endpoints
Although RBAC exists, it was not consistently enforced across: /management/*
๐ ๏ธ Remediation
โ 1. Restrict Management Endpoints /management/* โ Should be accessible only by admin roles โ 2. Enforce Spring Security .antMatchers(โ/management/**โ).hasRole(โADMINโ) โ 3. Limit Actuator Exposure management.endpoints.web.exposure.include=health,info
โ 4. Disable Unnecessary Endpoints
Avoid exposing debugging endpoints in staging/production.
โ 5. Isolate Management Interface โข Bind to internal network only โข Never expose publicly
โธป
๐ Conclusion
This vulnerability highlights a critical lesson:
โ ๏ธ Security must be consistent โ not partial.
Even when RBAC is correctly implemented, a single overlooked endpoint can expose sensitive internal data.
โธป
๐ก Key Takeaways
โข Never expose Actuator endpoints publicly โข Always enforce strict authorization โข Validate access control across all endpoints โข Treat configuration data as sensitive
โธป
๐ค Disclosure Timeline
โข Vulnerability discovered and reported responsibly โข Reviewed and validated by the security team โข Successfully accepted and rewarded ๐ฏ
โธป
โ๏ธ Final Thoughts
Misconfigured internal endpoints are a common yet dangerous mistake.
Always remember:
๐ โWhat is internal today can become public tomorrow.โ
๋ฉํ๋ฐ์ดํฐ
- post_id
- 20a7b4c9de4f
- slug
- improper-access-control-in-spring-boot-actuator-20a7b4c9de4f
- url
- https://medium.com/@psussef/improper-access-control-in-spring-boot-actuator-20a7b4c9de4f
- canonical_url
- https://medium.com/@psussef/improper-access-control-in-spring-boot-actuator-20a7b4c9de4f
- author_url
- https://medium.com/@psussef
- status
- ok
- fetched_at
- 2026-07-15 18:16:01