Hi all — opened a PR against 7.1 and wanted to give some context and get eyes on it before it goes further: Remove AWS SDK v1 from the AWS plugin and bump amqp-client to 5.34.0 by pranavp26 · Pull Request #27074 · Graylog2/graylog2-server · GitHub
What’s in it
Two independent fixes bundled on one branch:
1. Remove AWS SDK v1 from the legacy AWS plugin
org.graylog.aws.* (the instance-name-lookup processor and the CloudTrail input’s region/proxy handling) was the last part of the codebase still depending on AWS SDK v1 (com.amazonaws). Everything else — Kinesis, CloudWatch, S3 GeoIP, SQS/SNS, and even the rest of the CloudTrail input itself — was already on SDK v2. This closes that gap:
AWSAuthProvidernow implements SDK v2’sAwsCredentialsProvider, delegating toAWSAuthFactory(the same factory the rest of the AWS integrations already use) instead of hand-rolling v1 credential logic.InstanceLookupTable’s EC2 client moves fromAmazonEC2Client(v1) toEc2Client(v2) — same business logic, just the v2 API surface.- Added a
com.amazonaws:aws-java-sdk-*ban to the dependency enforcer rules so v1 can’t quietly come back.
AWS SDK v1 has been in maintenance mode past its announced EOL, so this seemed worth doing on its own merits even outside of any specific CVE.
2. Bump com.rabbitmq:amqp-client 5.29.0 → 5.34.0
Fixes three CVEs in the RabbitMQ Java client used by the AMQP input:
- CVE-2026-63335 — malformed body frame triggers a raw exception (DoS)
- CVE-2026-63336 —
ConnectionFactory.useSslProtocol()defaults to a trust-everything TLS manager with no hostname verification (MITM). This one’s directly reachable in our own code —AmqpConsumer.javacalls exactly this overload whenever TLS is enabled on an AMQP input. - CVE-2026-69220 — unbounded recursion parsing nested AMQP tables lets a malicious/compromised broker crash the client with a pre-auth
StackOverflowError
Why now / why bundled
Different motivations, same branch for convenience — happy to split into two PRs if maintainers would prefer that.
Testing
- Clean compile + clean
test-compilewith license headers,forbiddenapis, and the dependency enforcer (including the new ban) all passing - Full
org.graylog.aws.*unit-test suite: 39/39 passing AmqpTransportITagainst a real RabbitMQ container (Testcontainers): 2/2 passing- For the AWS side, since none of this had integration-test coverage even on v1: ran a manual smoke test against a real EC2 instance — launched a tagged
t3.micro, ranInstanceLookupTabledirectly against it, confirmed it correctly resolved both the instance’s private and public IP to itsNametag via the livedescribeNetworkInterfaces/describeInstancescalls, then tore the instance down - Confirmed via
grep/mvn dependency:treethat nocom.amazonaws:aws-java-sdk-*references remain anywhere (the one leftovercom.amazonaws-groupId artifact,dynamodb-lock-client, is unrelated — pulled in transitively by the Kinesis Client Library, and is itself built entirely on SDK v2)
One user-visible thing worth flagging: AWS’s own SDK v2 region metadata uses different display text than v1 did (e.g. "EU (London)" → "Europe (London)"), which shows up in the AWS plugin’s region dropdowns. Not a bug in the migration — just AWS changing their own naming between SDK versions — but wanted to call it out explicitly rather than have it be a surprise in review.
Would appreciate any early feedback, especially on whether bundling the two changes is fine or should be split, and whether the AWS side needs more than the manual smoke test before merging.