Skip to content

Commit b6464a6

Browse files
authored
Refactor UntrustedDeserializationModule call to onObject (#7484)
1 parent ce8ac44 commit b6464a6

File tree

5 files changed

+15
-17
lines changed

5 files changed

+15
-17
lines changed

dd-java-agent/agent-iast/src/main/java/com/datadog/iast/sink/UntrustedDeserializationModuleImpl.java

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,6 @@
33
import com.datadog.iast.Dependencies;
44
import com.datadog.iast.model.VulnerabilityType;
55
import datadog.trace.api.iast.sink.UntrustedDeserializationModule;
6-
import java.io.InputStream;
76
import javax.annotation.Nullable;
87

98
public class UntrustedDeserializationModuleImpl extends SinkModuleBase
@@ -14,10 +13,10 @@ public UntrustedDeserializationModuleImpl(final Dependencies dependencies) {
1413
}
1514

1615
@Override
17-
public void onInputStream(@Nullable InputStream is) {
18-
if (is == null) {
16+
public void onObject(@Nullable Object object) {
17+
if (object == null) {
1918
return;
2019
}
21-
checkInjection(VulnerabilityType.UNTRUSTED_DESERIALIZATION, is);
20+
checkInjection(VulnerabilityType.UNTRUSTED_DESERIALIZATION, object);
2221
}
2322
}

dd-java-agent/agent-iast/src/test/groovy/com/datadog/iast/sink/UntrustedDeserializationModuleTest.groovy

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -22,29 +22,29 @@ class UntrustedDeserializationModuleTest extends IastModuleImplTestBase {
2222
return Mock(Reporter)
2323
}
2424

25-
void 'test null value'() {
25+
void 'test null value with object null'() {
2626
when:
27-
module.onInputStream(null)
27+
module.onObject(null)
2828

2929
then:
3030
0 * _
3131
}
3232

3333
void 'test untrusted deserialization detection' () {
3434
setup:
35-
def inputStream = Mock(InputStream)
35+
def object = Mock(Object)
3636

3737
when:
38-
module.onInputStream(inputStream)
38+
module.onObject(object)
3939

40-
then: 'without tainted input stream'
40+
then: 'without tainted object'
4141
0 * reporter.report(_, _)
4242

4343
when:
44-
taint(inputStream)
45-
module.onInputStream(inputStream)
44+
taint(object)
45+
module.onObject(object)
4646

47-
then: 'with tainted input stream'
47+
then: 'with tainted object'
4848
1 * reporter.report(_, { Vulnerability vul -> vul.type == VulnerabilityType.UNTRUSTED_DESERIALIZATION})
4949
}
5050

dd-java-agent/instrumentation/java-io/src/main/java/datadog/trace/instrumentation/java/lang/ObjectInputStreamCallSite.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ public static void beforeConstructorUntrusted(@CallSite.Argument(0) final InputS
1818

1919
if (module != null) {
2020
try {
21-
module.onInputStream(is);
21+
module.onObject(is);
2222
} catch (Throwable e) {
2323
module.onUnexpectedException("before constructor untrusted threw", e);
2424
}

dd-java-agent/instrumentation/java-io/src/test/groovy/datadog/trace/instrumentation/java/io/ObjectInputStreamCallSiteTest.groovy

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ class ObjectInputStreamCallSiteTest extends AgentTestRunner {
1212
injectSysConfig('dd.iast.enabled', 'true')
1313
}
1414

15-
void 'test onInputStream'() {
15+
void 'test onObject'() {
1616
setup:
1717
final module = Mock(UntrustedDeserializationModule)
1818
InstrumentationBridge.registerIastModule(module)
@@ -23,6 +23,6 @@ class ObjectInputStreamCallSiteTest extends AgentTestRunner {
2323
TestObjectInputStreamSuite.init(inputStream)
2424

2525
then:
26-
1 * module.onInputStream(_)
26+
1 * module.onObject(_)
2727
}
2828
}
Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,9 @@
11
package datadog.trace.api.iast.sink;
22

33
import datadog.trace.api.iast.IastModule;
4-
import java.io.InputStream;
54
import javax.annotation.Nullable;
65

76
public interface UntrustedDeserializationModule extends IastModule {
87

9-
void onInputStream(@Nullable InputStream is);
8+
void onObject(@Nullable Object object);
109
}

0 commit comments

Comments
 (0)