Hi, I have problems with run a tsunami scanner with a python server. I use image
ghcr.io/google/tsunami-scanner-full from documenation
my system:
uname -srvmpio
Linux 6.11.0-21-generic #21~24.04.1-Ubuntu SMP PREEMPT_DYNAMIC Mon Feb 24 16:52:15 UTC 2 x86_64 x86_64 x86_64 GNU/Linux
Firstly I try use this image:
FROM ghcr.io/google/tsunami-scanner-full:latest
USER root
# without nmap I see error:
# 1) [Guice/ErrorInCustomProvider]: FileNotFoundException: Unable to find a valid nmap binary. Make sure Tsunami config contains a valid nmap binary path.
RUN apt-get update && apt-get install -y --no-install-recommends nmap
CMD ["bash"]
build, run and try:
docker build -t local_tsunami_err:latest -f Dockerfile .
docker run --name local_tsunami_err --rm --network host -it local_tsunami_err:latest bash
root@nblx-std-a12b6e:/usr/tsunami# tsunami-py-server >/tmp/py_server.log 2>&1 &
[1] 80
root@nblx-std-a12b6e:/usr/tsunami# ps -aux
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
root 1 0.0 0.0 4588 3568 pts/0 Ss 08:00 0:00 bash
root 80 0.0 0.0 4324 3136 pts/0 S 08:01 0:00 /bin/bash /usr/bin/tsunami-py-server
root 81 8.4 0.1 1617372 51140 pts/0 Sl 08:01 0:00 /usr/tsunami/py_venv/bin/python3 /usr/tsunami/py_server/plugin_server.py
root 103 0.0 0.0 7888 3696 pts/0 R+ 08:01 0:00 ps -aux
root@nblx-std-a12b6e:/usr/tsunami# tail /tmp/py_server.log
I0403 08:01:20.854847 133956547563648 plugin_server.py:164] [Python Server] 2026-04-03 08:01:20,854 Cve202532375VulnDetector
I0403 08:01:20.854881 133956547563648 plugin_server.py:164] [Python Server] 2026-04-03 08:01:20,854 ExamplePyVulnDetector
I0403 08:01:20.854907 133956547563648 plugin_server.py:164] [Python Server] 2026-04-03 08:01:20,854 JupyterExposedUiDetector
I0403 08:01:20.854932 133956547563648 plugin_server.py:164] [Python Server] 2026-04-03 08:01:20,854 PyZmqRceDetector
I0403 08:01:20.854960 133956547563648 plugin_server.py:164] [Python Server] 2026-04-03 08:01:20,854 RagFlowRceDetector
I0403 08:01:20.854994 133956547563648 plugin_server.py:164] [Python Server] 2026-04-03 08:01:20,854 Cve202222963VulnDetector
I0403 08:01:20.856550 133956547563648 plugin_server.py:96] [Python Server] 2026-04-03 08:01:20,856 Server started at 127.0.0.1:34567.
I0403 08:01:20.856607 133956547563648 plugin_server.py:189] [Python Server] 2026-04-03 08:01:20,856 Service tsunami.proto.PluginService is now SERVING
I0403 08:01:20.856636 133956547563648 plugin_server.py:189] [Python Server] 2026-04-03 08:01:20,856 Service grpc.reflection.v1alpha.ServerReflection is now SERVING
I0403 08:01:20.856659 133956547563648 plugin_server.py:189] [Python Server] 2026-04-03 08:01:20,856 Service grpc.health.v1.Health is now SERVING
root@nblx-std-a12b6e:/usr/tsunami# tsunami --ip-v4-target 127.0.0.1 --python-plugin-server-address 127.0.0.1 --python-plugin-server-port 34567 >/tmp/tsunami.log 2>&1
And in logs /tmp/tsunami.log I see:
INFO: An exception was caught and reported. Message: java.lang.IllegalArgumentException: Address types of NameResolver 'unix' for '127.0.0.1:34567' not supported by transportjava.lang.IllegalArgumentException: Address types of NameResolver 'unix' for '127.0.0.1:34567' not supported by transport at io.grpc.internal.ManagedChannelImpl.getNameResolver(ManagedChannelImpl.java:750) at io.grpc.internal.ManagedChannelImpl.getNameResolver(ManagedChannelImpl.java:771) at io.grpc.internal.ManagedChannelImpl.<init>(ManagedChannelImpl.java:635) at io.grpc.internal.ManagedChannelImplBuilder.build(ManagedChannelImplBuilder.java:668) at io.grpc.ForwardingChannelBuilder2.build(ForwardingChannelBuilder2.java:260) at com.google.tsunami.plugin.RemoteVulnDetectorLoadingModule.getLanguageServerChannel(RemoteVulnDetectorLoadingModule.java:85) at com.google.tsunami.plugin.RemoteVulnDetectorLoadingModule.lambda$configure$0(RemoteVulnDetectorLoadingModule.java:68) at com.google.common.collect.ImmutableList.forEach(ImmutableList.java:423) at com.google.tsunami.plugin.RemoteVulnDetectorLoadingModule.configure(RemoteVulnDetectorLoadingModule.java:66) at com.google.inject.AbstractModule.configure(AbstractModule.java:64) at com.google.inject.spi.Elements$RecordingBinder.install(Elements.java:426) at com.google.inject.AbstractModule.install(AbstractModule.java:106) at com.google.tsunami.main.cli.TsunamiCli$TsunamiCliModule.configure(TsunamiCli.java:206) at com.google.inject.AbstractModule.configure(AbstractModule.java:64) at com.google.inject.spi.Elements$RecordingBinder.install(Elements.java:426) at com.google.inject.spi.Elements.getElements(Elements.java:113) at com.google.inject.internal.InjectorShell$Builder.build(InjectorShell.java:160) at com.google.inject.internal.InternalInjectorCreator.build(InternalInjectorCreator.java:107) at com.google.inject.internal.InjectorImpl.createChildInjector(InjectorImpl.java:240) at com.google.inject.internal.InjectorImpl.createChildInjector(InjectorImpl.java:245) at com.google.tsunami.main.cli.TsunamiCli.doMain(TsunamiCli.java:298) at com.google.tsunami.main.cli.TsunamiCli.main(TsunamiCli.java:317)Apr 03, 2026 8:01:50 AM com.google.tsunami.main.cli.TsunamiCli doMainSEVERE: Exiting due to workflow execution exceptions.com.google.inject.CreationException: Unable to create injector, see the following errors:1) An exception was caught and reported. Message: Address types of NameResolver 'unix' for '127.0.0.1:34567' not supported by transport at TsunamiCli$TsunamiCliModule.configure(TsunamiCli.java:206) \_ installed by: TsunamiCli$TsunamiCliModule -> RemoteVulnDetectorLoadingModule1 error======================Full classname legend:======================RemoteVulnDetectorLoadingModule: "com.google.tsunami.plugin.RemoteVulnDetectorLoadingModule"TsunamiCli$TsunamiCliModule: "com.google.tsunami.main.cli.TsunamiCli$TsunamiCliModule"========================End of classname legend:======================== at com.google.inject.internal.Errors.throwCreationExceptionIfErrorsExist(Errors.java:589) at com.google.inject.internal.InternalInjectorCreator.initializeStatically(InternalInjectorCreator.java:163) at com.google.inject.internal.InternalInjectorCreator.build(InternalInjectorCreator.java:110) at com.google.inject.internal.InjectorImpl.createChildInjector(InjectorImpl.java:240) at com.google.inject.internal.InjectorImpl.createChildInjector(InjectorImpl.java:245) at com.google.tsunami.main.cli.TsunamiCli.doMain(TsunamiCli.java:298) at com.google.tsunami.main.cli.TsunamiCli.main(TsunamiCli.java:317)Caused by: java.lang.IllegalArgumentException: Address types of NameResolver 'unix' for '127.0.0.1:34567' not supported by transport at io.grpc.internal.ManagedChannelImpl.getNameResolver(ManagedChannelImpl.java:750) at io.grpc.internal.ManagedChannelImpl.getNameResolver(ManagedChannelImpl.java:771) at io.grpc.internal.ManagedChannelImpl.<init>(ManagedChannelImpl.java:635) at io.grpc.internal.ManagedChannelImplBuilder.build(ManagedChannelImplBuilder.java:668) at io.grpc.ForwardingChannelBuilder2.build(ForwardingChannelBuilder2.java:260) at com.google.tsunami.plugin.RemoteVulnDetectorLoadingModule.getLanguageServerChannel(RemoteVulnDetectorLoadingModule.java:85) at com.google.tsunami.plugin.RemoteVulnDetectorLoadingModule.lambda$configure$0(RemoteVulnDetectorLoadingModule.java:68) at com.google.common.collect.ImmutableList.forEach(ImmutableList.java:423) at com.google.tsunami.plugin.RemoteVulnDetectorLoadingModule.configure(RemoteVulnDetectorLoadingModule.java:66) at com.google.inject.AbstractModule.configure(AbstractModule.java:64) at com.google.inject.spi.Elements$RecordingBinder.install(Elements.java:426) at com.google.inject.AbstractModule.install(AbstractModule.java:106) at com.google.tsunami.main.cli.TsunamiCli$TsunamiCliModule.configure(TsunamiCli.java:206) at com.google.inject.AbstractModule.configure(AbstractModule.java:64) at com.google.inject.spi.Elements$RecordingBinder.install(Elements.java:426) at com.google.inject.spi.Elements.getElements(Elements.java:113) at com.google.inject.internal.InjectorShell$Builder.build(InjectorShell.java:160) at com.google.inject.internal.InternalInjectorCreator.build(InternalInjectorCreator.java:107) ... 4 more
I also try:
tsunami --ip-v4-target 127.0.0.1 --python-plugin-server-address "dns:///127.0.0.1" --python-plugin-server-port 34567 >/tmp/tsunami.log 2>&1
But get error:
INFO: An exception was caught and reported. Message: java.lang.IllegalArgumentException: Could not find a NameResolverProvider for dns:///127.0.0.1:34567java.lang.IllegalArgumentException: Could not find a NameResolverProvider for dns:///127.0.0.1:34567 at io.grpc.internal.ManagedChannelImpl.getNameResolver(ManagedChannelImpl.java:741) at io.grpc.internal.ManagedChannelImpl.getNameResolver(ManagedChannelImpl.java:771) at io.grpc.internal.ManagedChannelImpl.<init>(ManagedChannelImpl.java:635) at io.grpc.internal.ManagedChannelImplBuilder.build(ManagedChannelImplBuilder.java:668) at io.grpc.ForwardingChannelBuilder2.build(ForwardingChannelBuilder2.java:260) at com.google.tsunami.plugin.RemoteVulnDetectorLoadingModule.getLanguageServerChannel(RemoteVulnDetectorLoadingModule.java:85) at com.google.tsunami.plugin.RemoteVulnDetectorLoadingModule.lambda$configure$0(RemoteVulnDetectorLoadingModule.java:68) at com.google.common.collect.ImmutableList.forEach(ImmutableList.java:423) at com.google.tsunami.plugin.RemoteVulnDetectorLoadingModule.configure(RemoteVulnDetectorLoadingModule.java:66) at com.google.inject.AbstractModule.configure(AbstractModule.java:64) at com.google.inject.spi.Elements$RecordingBinder.install(Elements.java:426) at com.google.inject.AbstractModule.install(AbstractModule.java:106) at com.google.tsunami.main.cli.TsunamiCli$TsunamiCliModule.configure(TsunamiCli.java:206) at com.google.inject.AbstractModule.configure(AbstractModule.java:64) at com.google.inject.spi.Elements$RecordingBinder.install(Elements.java:426) at com.google.inject.spi.Elements.getElements(Elements.java:113) at com.google.inject.internal.InjectorShell$Builder.build(InjectorShell.java:160) at com.google.inject.internal.InternalInjectorCreator.build(InternalInjectorCreator.java:107) at com.google.inject.internal.InjectorImpl.createChildInjector(InjectorImpl.java:240) at com.google.inject.internal.InjectorImpl.createChildInjector(InjectorImpl.java:245) at com.google.tsunami.main.cli.TsunamiCli.doMain(TsunamiCli.java:298) at com.google.tsunami.main.cli.TsunamiCli.main(TsunamiCli.java:317)Apr 03, 2026 11:00:58 AM com.google.tsunami.main.cli.TsunamiCli doMainSEVERE: Exiting due to workflow execution exceptions.com.google.inject.CreationException: Unable to create injector, see the following errors:1) An exception was caught and reported. Message: Could not find a NameResolverProvider for dns:///127.0.0.1:34567 at TsunamiCli$TsunamiCliModule.configure(TsunamiCli.java:206) \_ installed by: TsunamiCli$TsunamiCliModule -> RemoteVulnDetectorLoadingModule1 error======================Full classname legend:======================RemoteVulnDetectorLoadingModule: "com.google.tsunami.plugin.RemoteVulnDetectorLoadingModule"TsunamiCli$TsunamiCliModule: "com.google.tsunami.main.cli.TsunamiCli$TsunamiCliModule"========================End of classname legend:======================== at com.google.inject.internal.Errors.throwCreationExceptionIfErrorsExist(Errors.java:589) at com.google.inject.internal.InternalInjectorCreator.initializeStatically(InternalInjectorCreator.java:163) at com.google.inject.internal.InternalInjectorCreator.build(InternalInjectorCreator.java:110) at com.google.inject.internal.InjectorImpl.createChildInjector(InjectorImpl.java:240) at com.google.inject.internal.InjectorImpl.createChildInjector(InjectorImpl.java:245) at com.google.tsunami.main.cli.TsunamiCli.doMain(TsunamiCli.java:298) at com.google.tsunami.main.cli.TsunamiCli.main(TsunamiCli.java:317)Caused by: java.lang.IllegalArgumentException: Could not find a NameResolverProvider for dns:///127.0.0.1:34567 at io.grpc.internal.ManagedChannelImpl.getNameResolver(ManagedChannelImpl.java:741) at io.grpc.internal.ManagedChannelImpl.getNameResolver(ManagedChannelImpl.java:771) at io.grpc.internal.ManagedChannelImpl.<init>(ManagedChannelImpl.java:635) at io.grpc.internal.ManagedChannelImplBuilder.build(ManagedChannelImplBuilder.java:668) at io.grpc.ForwardingChannelBuilder2.build(ForwardingChannelBuilder2.java:260) at com.google.tsunami.plugin.RemoteVulnDetectorLoadingModule.getLanguageServerChannel(RemoteVulnDetectorLoadingModule.java:85) at com.google.tsunami.plugin.RemoteVulnDetectorLoadingModule.lambda$configure$0(RemoteVulnDetectorLoadingModule.java:68) at com.google.common.collect.ImmutableList.forEach(ImmutableList.java:423) at com.google.tsunami.plugin.RemoteVulnDetectorLoadingModule.configure(RemoteVulnDetectorLoadingModule.java:66) at com.google.inject.AbstractModule.configure(AbstractModule.java:64) at com.google.inject.spi.Elements$RecordingBinder.install(Elements.java:426) at com.google.inject.AbstractModule.install(AbstractModule.java:106) at com.google.tsunami.main.cli.TsunamiCli$TsunamiCliModule.configure(TsunamiCli.java:206) at com.google.inject.AbstractModule.configure(AbstractModule.java:64) at com.google.inject.spi.Elements$RecordingBinder.install(Elements.java:426) at com.google.inject.spi.Elements.getElements(Elements.java:113) at com.google.inject.internal.InjectorShell$Builder.build(InjectorShell.java:160) at com.google.inject.internal.InternalInjectorCreator.build(InternalInjectorCreator.java:107) ... 4 more
I probably founded workaround. At least I can see in the logs that the scan is complete. Dockerfile with workaround
FROM ghcr.io/google/tsunami-scanner-full:latest
USER root
# without nmap I see error:
# 1) [Guice/ErrorInCustomProvider]: FileNotFoundException: Unable to find a valid nmap binary. Make sure Tsunami config contains a valid nmap binary path.
RUN apt-get update && apt-get install -y --no-install-recommends nmap
RUN apt-get install -y --no-install-recommends zip unzip
RUN unzip -o /usr/tsunami/tsunami.jar && \
echo 'io.grpc.internal.DnsNameResolverProvider' >> META-INF/services/io.grpc.NameResolverProvider && \
echo 'io.grpc.internal.PickFirstLoadBalancerProvider' >> META-INF/services/io.grpc.LoadBalancerProvider && \
zip -r0 /usr/tsunami/tsunami-fixed.jar .
RUN mv /usr/tsunami/tsunami-fixed.jar /usr/tsunami/tsunami.jar
CMD ["bash"]
Can you help me figure it out what I do wrong? I am not familiar with java but I am ready to give more information if necessary
Hi, I have problems with run a tsunami scanner with a python server. I use image
ghcr.io/google/tsunami-scanner-full from documenation
my system:
Firstly I try use this image:
build, run and try:
And in logs /tmp/tsunami.log I see:
I also try:
tsunami --ip-v4-target 127.0.0.1 --python-plugin-server-address "dns:///127.0.0.1" --python-plugin-server-port 34567 >/tmp/tsunami.log 2>&1But get error:
I probably founded workaround. At least I can see in the logs that the scan is complete. Dockerfile with workaround
Can you help me figure it out what I do wrong? I am not familiar with java but I am ready to give more information if necessary