Skip to content

Commit acf3a60

Browse files
committed
fix(appsec): move MAX_FILES_TO_INSPECT out of advice inner class to fix muzzle validation
Static fields in @RequiresRequestContext advice inner classes trigger muzzle to treat the advice class itself as a user-classpath class; moving the constant to NettyFileUploadContentReader (a helper) avoids the self-referential muzzle failure.
1 parent 7aa5b59 commit acf3a60

2 files changed

Lines changed: 2 additions & 4 deletions

File tree

dd-java-agent/instrumentation/netty/netty-4.1/src/main/java/datadog/trace/instrumentation/netty41/HttpPostRequestDecoderInstrumentation.java

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,6 @@
1212
import datadog.trace.agent.tooling.Instrumenter;
1313
import datadog.trace.agent.tooling.InstrumenterModule;
1414
import datadog.trace.agent.tooling.muzzle.Reference;
15-
import datadog.trace.api.Config;
1615
import datadog.trace.api.gateway.BlockResponseFunction;
1716
import datadog.trace.api.gateway.CallbackProvider;
1817
import datadog.trace.api.gateway.Flow;
@@ -88,8 +87,6 @@ public void methodAdvice(MethodTransformer transformer) {
8887

8988
@RequiresRequestContext(RequestContextSlot.APPSEC)
9089
static class ParseBodyAdvice {
91-
private static final int MAX_FILES_TO_INSPECT = Config.get().getAppSecMaxFileContentCount();
92-
9390
@Advice.OnMethodExit(suppress = Throwable.class, onThrowable = Throwable.class)
9491
static void after(
9592
@Advice.This InterfaceHttpPostRequestDecoder thiz,
@@ -143,7 +140,7 @@ static void after(
143140
if (filename != null && !filename.isEmpty()) {
144141
filenames.add(filename);
145142
}
146-
if (contentCb != null && filesContent.size() < MAX_FILES_TO_INSPECT) {
143+
if (contentCb != null && filesContent.size() < NettyFileUploadContentReader.MAX_FILES_TO_INSPECT) {
147144
filesContent.add(NettyFileUploadContentReader.readContent(fileUpload));
148145
}
149146
}

dd-java-agent/instrumentation/netty/netty-4.1/src/main/java/datadog/trace/instrumentation/netty41/NettyFileUploadContentReader.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@
99
/** Reads uploaded file content from a Netty {@link FileUpload} for WAF inspection. */
1010
public final class NettyFileUploadContentReader {
1111
public static final int MAX_CONTENT_BYTES = Config.get().getAppSecMaxFileContentBytes();
12+
public static final int MAX_FILES_TO_INSPECT = Config.get().getAppSecMaxFileContentCount();
1213

1314
public static String readContent(FileUpload fileUpload) {
1415
try {

0 commit comments

Comments
 (0)