Allow MaD barriers relating to ExternalLocationSink

This commit is contained in:
Owen Mansel-Chan
2026-01-09 11:24:55 +00:00
parent 004d40ee93
commit b30bc5ea44
3 changed files with 13 additions and 0 deletions

View File

@@ -4,6 +4,7 @@
import csharp
private import semmle.code.csharp.security.dataflow.flowsources.Remote
private import semmle.code.csharp.dataflow.internal.ExternalFlow
private import semmle.code.csharp.frameworks.system.Web
private import semmle.code.csharp.security.SensitiveActions
private import semmle.code.csharp.security.dataflow.flowsinks.ExternalLocationSink
@@ -62,3 +63,5 @@ class ProtectSanitizer extends Sanitizer {
* An external location sink.
*/
class ExternalSink extends Sink instanceof ExternalLocationSink { }
private class ExternalSanitizer extends Sanitizer instanceof ExternalLocationSanitizer { }

View File

@@ -46,3 +46,5 @@ private class PrivateDataSource extends Source {
}
private class ExternalLocation extends Sink instanceof ExternalLocationSink { }
private class ExternalSanitizer extends Sanitizer instanceof ExternalLocationSanitizer { }

View File

@@ -126,3 +126,11 @@ class LocalFileOutputSink extends ExternalLocationSink {
)
}
}
/**
* A sanitizer for writing data to locations that are external to the
* application, defined through Models as Data.
*/
class ExternalLocationSanitizer extends DataFlow::Node {
ExternalLocationSanitizer() { barrierNode(this, "file-content-store") }
}