<div dir="ltr"><div>Hi!</div><div><br></div><div>Is there a reason not to port this to JDK25? Because if there ain't, I want to port it.</div><div><br></div><div>Cheers!</div><div>María.</div></div><br><div class="gmail_quote gmail_quote_container"><div dir="ltr" class="gmail_attr">On Sun, Feb 15, 2026 at 6:45 AM <<a href="mailto:ioi.lam@oracle.com">ioi.lam@oracle.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><u></u>

  
  <div>
    <p>Hi Aman,</p>
    <p><br>
    </p>
    <p>Thanks for the bug report. I have created a PR to fix this issue:</p>
    <p><br>
    </p>
    <p><a href="https://github.com/openjdk/jdk/pull/29728" target="_blank">https://github.com/openjdk/jdk/pull/29728</a></p>
    <p><br>
    </p>
    <p>- Ioi</p>
    <p><br>
    </p>
    <div>On 1/30/26 2:53 AM, Aman Sharma wrote:<br>
    </div>
    <blockquote type="cite">
      
      
      <div id="m_5158190864462757391divtagdefaultwrapper" dir="ltr" style="font-size:12pt;color:rgb(0,0,0);font-family:Garamond,Georgia,serif,"EmojiFont","Apple Color Emoji","Segoe UI Emoji",NotoColorEmoji,"Segoe UI Symbol","Android Emoji",EmojiSymbols">
        <p><font face="Garamond,Georgia,serif,EmojiFont,Apple Color Emoji,Segoe UI Emoji,NotoColorEmoji,Segoe UI Symbol,Android Emoji,EmojiSymbols" size="3" color="black"><span id="m_5158190864462757391divtagdefaultwrapper" style="font-size:12pt"><font face="Garamond,Georgia,serif,EmojiFont,Apple Color Emoji,Segoe UI Emoji,NotoColorEmoji,Segoe UI Symbol,Android Emoji,EmojiSymbols" size="3" color="black"><span id="m_5158190864462757391divtagdefaultwrapper" style="font-size:12pt"></span></font></span></font></p>
        <font face="Garamond,Georgia,serif,EmojiFont,Apple Color Emoji,Segoe UI Emoji,NotoColorEmoji,Segoe UI Symbol,Android Emoji,EmojiSymbols" size="3" color="black"><font face="Garamond,Georgia,serif,EmojiFont,Apple Color Emoji,Segoe UI Emoji,NotoColorEmoji,Segoe UI Symbol,Android Emoji,EmojiSymbols" size="3" color="black">
            <div style="margin-top:0px;margin-bottom:0px">Hi all,</div>
            <div style="margin-top:0px;margin-bottom:0px"><br>
            </div>
            <div style="margin-top:0px;margin-bottom:0px">I have been
              playing around with AOTCache and I tried a small with
              it experiment whose idea was to shadow a class using
              AOTCache. By class shadowing, I mean loading a different
              class than intended but they both share the same fully
              qualified name. We also explored this concept in
              the paper: <a href="https://arxiv.org/abs/2407.18760v4" target="_blank"><span>Maven-Hijack:
                  Software Supply Chain Attack Exploiting Packaging
                  Order</span></a>, and now I am trying to extend it to
              AOTCache.</div>
            <div style="margin-top:0px;margin-bottom:0px"><br>
            </div>
            <div style="margin-top:0px;margin-bottom:0px">The steps in the
              experiment are based on
              <a href="https://github.com/chains-project/maven-hijack-poc" rel="noopener noreferrer" target="_blank">
                POC</a> from the same paper and are written briefly
              below. The exact commands are documented
              <a href="https://github.com/chains-project/maven-hijack-poc/blob/main/java/maven/abstract-project/AOTCache.md" target="_blank">
                here</a>.</div>
            <ol style="margin-top:0px;margin-bottom:0px">
              <li>Build the application with one of the dependencies
                having malicious class. The malicious class has the same
                name as one of the other classes, say
                `org.postrgresql.Driver` but
                <a href="https://github.com/chains-project/maven-hijack-poc/blob/0310de24103a55d1f51f70ef625933a40a7a55b3/java/maven/abstract-project/install-me-first/D11/src/main/java/org/postgresql/Driver.java#L8-L23" target="_blank">
                  has malicious contents</a>.</li>
              <li>Create an AOTCache using these dependencies in jar. <i>This
                  creates a "polluted AOTCache".</i></li>
              <li>Now using the polluted cache, run the application that
                is packaged with genuine dependencies. Apparently, the
                JVM initializes the malicious class from AOTCache
                instead of loading it from classpath. In other words, `<span style="font-family:"Courier New",monospace">java
                  -XX:AOTCache=maven.aot -jar target/victim-1.0.jar</span>`
                and `<span style="font-family:"Courier New",monospace">java
                  -jar target/victim-1.0.jar</span>` give different
                outputs.</li>
            </ol>
            <div><br>
            </div>
            <div>I see this as a weakness if the poisoned AOTCache is
              distributed as an artifact for consumers to be
              used because maybe it is not expected from consumers to
              perform a training run themselves. I believe there should
              be some sort of integrity checks before a class is
              initialized from AOTCache. I noticed there are <a href="https://github.com/openjdk/jdk/blob/e3b5b261af6acbe7ab074f301c70283b06c17d39/src/hotspot/share/code/aotCodeCache.cpp#L435" target="_blank">
                already some</a> (please share if there are more, and I
              have missed them), but none of them relate to what I am
              mentioning. I am happy to listen to some thoughts on this.</div>
          </font></font>
        <p><br>
        </p>
        <div id="m_5158190864462757391Signature">
          <div id="m_5158190864462757391divtagdefaultwrapper" dir="ltr" style="font-size:12pt;color:rgb(0,0,0);font-family:Calibri,Helvetica,sans-serif,"EmojiFont","Apple Color Emoji","Segoe UI Emoji",NotoColorEmoji,"Segoe UI Symbol","Android Emoji",EmojiSymbols">
            <div id="m_5158190864462757391m_4935352394101912768Signature">
              <div name="divtagdefaultwrapper"><font size="2" color="#808080"><span style="font-family:Arial,"Helvetica Neue",helvetica,sans-serif;background-color:rgb(255,255,255)"><span id="m_5158190864462757391divtagdefaultwrapper" style="font-size:12pt">
                      <div style="margin-top:0px;margin-bottom:0px"><span style="color:rgb(0,0,0);font-family:Garamond,Georgia,serif">Regards,</span></div>
                      <span style="font-family:Garamond,Georgia,serif"></span><span style="font-family:Garamond,Georgia,serif"></span><span style="color:rgb(0,0,0)"></span><span style="font-family:Garamond,Georgia,serif"></span><span style="font-family:Garamond,Georgia,serif"></span>
                      <div style="margin-top:0px;margin-bottom:0px"><span style="color:rgb(0,0,0);font-family:Garamond,Georgia,serif">Aman Sharma</span></div>
                    </span><br>
                  </span></font></div>
              <div name="divtagdefaultwrapper"><font size="2" color="#808080"><span style="font-family:Arial,"Helvetica Neue",helvetica,sans-serif;background-color:rgb(255,255,255)"></span><span>PhD Student<br style="font-family:Arial,"Helvetica Neue",helvetica,sans-serif">
                    <span style="font-family:Arial,"Helvetica Neue",helvetica,sans-serif;background-color:rgb(255,255,255)">KTH
                      Royal Institute of Technology</span><br style="font-family:Arial,"Helvetica Neue",helvetica,sans-serif">
                  </span><span style="font-family:Arial,"Helvetica Neue",helvetica,sans-serif;background-color:rgb(255,255,255)">School
                    of Electrical Engineering and Computer Science
                    (EECS)</span><br style="font-family:Arial,"Helvetica Neue",helvetica,sans-serif">
                  <span style="font-family:Arial,"Helvetica Neue",helvetica,sans-serif;background-color:rgb(255,255,255)">Department
                    of Theoretical Computer Science (TCS)</span><br style="font-family:Arial,"Helvetica Neue",helvetica,sans-serif">
                  <span style="font-family:Arial,"Helvetica Neue",helvetica,sans-serif;background-color:rgb(255,255,255)"></span></font></div>
            </div>
            <a href="https://www.kth.se/profile/amansha" id="m_5158190864462757391LPNoLP" target="_blank"><span style="font-size:10pt"></span></a><a href="https://algomaster99.github.io/" id="m_5158190864462757391LPNoLP" target="_blank">https://algomaster99.github.io/</a><br>
          </div>
        </div>
      </div>
    </blockquote>
  </div>

</blockquote></div>