
Exploit per CVE-2021-30180 che prende di mira il framework Apache Dubbo RPC, consentendo l'esecuzione remota di codice tramite richieste RPC appositamente formulate nelle versioni vulnerabili.
Apache Dubbo è un framework RPC open source ad alte prestazioni basato su Java. Visita il sito ufficiale per iniziare rapidamente e per la documentazione, e la wiki per notizie, FAQ e note di rilascio.
Stiamo raccogliendo informazioni sugli utenti di Dubbo per aiutarci a migliorare ulteriormente Dubbo. Per favore, supportaci fornendo le tue informazioni su issue#1012: Wanted: who's using dubbo, grazie :)

Il seguente frammento di codice proviene da Dubbo Samples. Puoi clonare il progetto di esempio e spostarti nella sottodirectory dubbo-samples-api prima di procedere.
# git clone https://github.com/apache/dubbo-samples.git
# cd dubbo-samples/java/dubbo-samples-api
C'è un file README nella directory dubbo-samples-api. Raccomandiamo di fare riferimento agli esempi in quella directory seguendo le istruzioni indicate di seguito:
<properties>
<dubbo.version>2.7.8</dubbo.version>
</properties>
<dependencies>
<dependency>
<groupId>org.apache.dubbo</groupId>
<artifactId>dubbo</artifactId>
<version>${dubbo.version}</version>
</dependency>
<dependency>
<groupId>org.apache.dubbo</groupId>
<artifactId>dubbo-dependencies-zookeeper</artifactId>
<version>${dubbo.version}</version>
<type>pom</type>
</dependency>
</dependencies>
package org.apache.dubbo.samples.api;
public interface GreetingsService {
String sayHi(String name);
}
Vedi api/GreetingsService.java su GitHub.
package org.apache.dubbo.samples.provider;
import org.apache.dubbo.samples.api.GreetingsService;
public class GreetingsServiceImpl implements GreetingsService {
@Override
public String sayHi(String name) {
return "hi, " + name;
}
}
Vedi provider/GreetingsServiceImpl.java su GitHub.
package org.apache.dubbo.samples.provider;
import org.apache.dubbo.config.ApplicationConfig;
import org.apache.dubbo.config.RegistryConfig;
import org.apache.dubbo.config.ServiceConfig;
import org.apache.dubbo.samples.api.GreetingsService;
import java.util.concurrent.CountDownLatch;
public class Application {
private static String zookeeperHost = System.getProperty("zookeeper.address", "127.0.0.1");
public static void main(String[] args) throws Exception {
ServiceConfig<GreetingsService> service = new ServiceConfig<>();
service.setApplication(new ApplicationConfig("first-dubbo-provider"));
service.setRegistry(new RegistryConfig("zookeeper://" + zookeeperHost + ":2181"));
service.setInterface(GreetingsService.class);
service.setRef(new GreetingsServiceImpl());
service.export();
System.out.println("dubbo service started");
new CountDownLatch(1).await();
}
}
Vedi provider/Application.java su GitHub.
# mvn clean package
# mvn -Djava.net.preferIPv4Stack=true -Dexec.mainClass=org.apache.dubbo.samples.provider.Application exec:java
package org.apache.dubbo.samples.client;
import org.apache.dubbo.config.ApplicationConfig;
import org.apache.dubbo.config.ReferenceConfig;
import org.apache.dubbo.config.RegistryConfig;
import org.apache.dubbo.samples.api.GreetingsService;
public class Application {
private static String zookeeperHost = System.getProperty("zookeeper.address", "127.0.0.1");
public static void main(String[] args) {
ReferenceConfig<GreetingsService> reference = new ReferenceConfig<>();
reference.setApplication(new ApplicationConfig("first-dubbo-consumer"));
reference.setRegistry(new RegistryConfig("zookeeper://" + zookeeperHost + ":2181"));
reference.setInterface(GreetingsService.class);
GreetingsService service = reference.get();
String message = service.sayHi("dubbo");
System.out.println(message);
}
}
Vedi consumer/Application.java su GitHub.
# mvn clean package
# mvn -Djava.net.preferIPv4Stack=true -Dexec.mainClass=org.apache.dubbo.samples.client.Application exec:java
Il consumer stamperà hi, dubbo sullo schermo.
Se vuoi provare le funzionalità all'avanguardia, puoi compilare con i seguenti comandi. (È necessario Java 1.8 per compilare il branch master)
mvn clean install
Lista di discussione:
Bug: Issues
Gitter: Canale Gitter
Twitter: @ApacheDubbo
Vedi CONTRIBUTING per dettagli su come inviare patch e il flusso di lavoro dei contributi.
Good first issue o Help wanted.Si prega di seguire il template per segnalare qualsiasi problema.
Si prega di segnalare le vulnerabilità di sicurezza a noi privatamente.
dubbo per raccogliere tutti i progetti rilevanti per Dubbo non ancora appropriati nel gruppo apacheIl software Apache Dubbo è concesso in licenza secondo i termini della Apache License Versione 2.0. Vedi il file LICENSE per i dettagli.