
استغلال لثغرة CVE-2011-4367 يستهدف تنفيذ Apache MyFaces JSF، موضحًا ثغرة تنفيذ التعليمات البرمجية عن بُعد في إطار عمل Jakarta Faces.
تنفيذ (شبه كامل) لمواصفة JavaServer Faces 2.3
قاعدة شيفرة مُعاد هيكلتها بالكامل مقارنةً بـ 2.3، كما توفر امتداد Quarkus
يوفّر 2.3-next نفس واجهة برمجة تطبيقات JSF 2.3 لكنه يفوض @ManagedBeans إلى CDI؛ أما ManagedBeans المُعرَّفة عبر XML فتتم تجاهلها تمامًا. كما تمت إزالة تنفيذ FacesEL القديم (javax.faces.el.*) بالكامل.
تنفيذ 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>
منذ إصدار 2.3-next أصبح امتداد Quarkus متاحًا. يمكن العثور على مشروع نموذجي هنا: https://github.com/apache/myfaces/blob/main/extensions/quarkus/showcase/
@ConversationScopedsrc/main/resources/META-INF/resources لأن Quarkus لا يُنشئ حزمة WAR ويتجاهل src/main/webapp!