Skip to content

fix(security): mitigate blind SSRF in operation delegation (CWE-918) #1001

Merged
aaronzi merged 6 commits intoeclipse-basyx:mainfrom
aaronzi:main
Apr 23, 2026
Merged

fix(security): mitigate blind SSRF in operation delegation (CWE-918) #1001
aaronzi merged 6 commits intoeclipse-basyx:mainfrom
aaronzi:main

Conversation

@aaronzi
Copy link
Copy Markdown
Member

@aaronzi aaronzi commented Apr 23, 2026

This pull request introduces a comprehensive security layer for outbound operation delegation in the Submodel Repository feature. The main changes include validating all outbound delegation URIs, blocking potentially unsafe targets by default, supporting allowlists for approved exceptions, and improving error handling and configuration. These changes significantly enhance the safety and configurability of operation delegation.

Security enhancements for operation delegation

  • Added a new OperationDelegationTargetValidator class to validate outbound delegation targets, blocking loopback, private, link-local, and metadata addresses, and only allowing http/https schemes by default. Explicit allowlists for hosts, CIDRs, and ports are supported.
  • Introduced OperationDelegationSecurityProperties to expose all relevant security configuration options, including toggles for each blocking rule and allowlist settings.
  • Updated the configuration (OperationDelegationSubmodelRepositoryConfiguration) to wire in the validator and properties, and to enforce validation on every outbound HTTP request.

Runtime and error handling improvements

  • Modified HTTPOperationDelegation to reject HTTP redirects, improve error messages, and ensure all exceptions are wrapped as OperationDelegationException.
  • Updated the documentation (Readme.md) to describe the new security defaults, configuration options, and allowlist usage for hybrid deployments.

aaronzi and others added 6 commits March 11, 2026 09:27
Add strict delegation target validation with secure defaults and explicit allowlist support.

Block local/private/link-local/metadata destinations, reject redirects, and extend tests/docs including example config updates.
@aaronzi aaronzi merged commit 99125cf into eclipse-basyx:main Apr 23, 2026
45 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants