
Exploit pour CVE-2011-4367 ciblant l'implémentation Apache MyFaces JSF, démontrant une vulnérabilité d'exécution de code à distance dans le framework Jakarta Faces.
Implémentation Apache des spécifications JavaServer Faces (JSF) et Jakarta Faces
Implémentation Jakarta Faces 5.0
Implémentation Jakarta Faces 4.1
Implémentation Jakarta Faces 4.0
Basée sur la base de code refactorisée 2.3-next
Implémentation (quasi) JavaServer Faces 2.3
Base de code complètement refactorisée par rapport à 2.3, fournissant également une extension Quarkus
2.3-next correspond à l'API JSF 2.3 mais délègue les @ManagedBeans au CDI ; les ManagedBeans configurés via XML sont complètement ignorés. L'implémentation de l'ancien FacesEL (javax.faces.el.*) a également été complètement supprimée.
Implémentation JavaServer Faces 2.3
mvn clean install
<dependency>
<groupId>org.apache.myfaces.core</groupId>
<artifactId>myfaces-api</artifactId>
<version>5.0.0-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>org.apache.myfaces.core</groupId>
<artifactId>myfaces-impl</artifactId>
<version>5.0.0-SNAPSHOT</version>
</dependency>
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="https://jakarta.ee/xml/ns/jakartaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="https://jakarta.ee/xml/ns/jakartaee https://jakarta.ee/xml/ns/jakartaee/web-app_5_0.xsd"
version="5.0">
<servlet>
<servlet-name>Faces Servlet</servlet-name>
<servlet-class>jakarta.faces.webapp.FacesServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>Faces Servlet</servlet-name>
<url-pattern>*.xhtml</url-pattern>
</servlet-mapping>
</web-app>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:f="jakarta.faces.core"
xmlns:h="jakarta.faces.html">
<h:head>
</h:head>
<h:body>
Hello World!
</h:body>
</html>
Depuis 2.3-next, une extension Quarkus est disponible. Un projet exemple se trouve ici : https://github.com/apache/myfaces/blob/main/extensions/quarkus/showcase/
@ConversationScopedsrc/main/resources/META-INF/resources car Quarkus ne crée pas de WAR et src/main/webapp est ignoré !