[jboss-jira] [JBoss JIRA] (SASL-78) Invalid manifest section in jboss-sasl JAR
Björn Kautler (JIRA)
issues at jboss.org
Thu Oct 27 09:53:00 EDT 2016
[ https://issues.jboss.org/browse/SASL-78?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13313036#comment-13313036 ]
Björn Kautler commented on SASL-78:
-----------------------------------
Actually I did not have the problem with jboss-sasl as we don't use it in our WebStart application. I had the problem with other libs and then checked all libs that we have in our local Ivy repository for JARs with invalid manifest entries. If this project is EOL and replaced by a new project that does not have this problem, I guess it is fine and you can close the issue as wont-fix. :-)
> Invalid manifest section in jboss-sasl JAR
> ------------------------------------------
>
> Key: SASL-78
> URL: https://issues.jboss.org/browse/SASL-78
> Project: SASL Provider
> Issue Type: Bug
> Components: Build
> Affects Versions: 1.0.4.Final, 1.0.5.Final
> Reporter: Björn Kautler
> Assignee: Darran Lofthouse
>
> In the {{MANIFEST.MF}} of your {{jboss-sasl}} JAR you have a section {{Build-Information}}.
> This violates that JAR specification.
> A section in the manifest always refers to an entry in the JAR.
> If you have sections in the manifest that do not refer to an entry in the JAR, it is assumed that the JAR was tampered with as there are entries missing that are referenced in the manifest.
> Please either remove this section and include the entries in that secion in the main section which is according to the specification or include a file called {{Build-Information}} at the root of your JAR file. (You are still using jboss-parent 7, if you upgrade to 8 or newer, the problem will be gone)
> ----
> In my concrete use-case this happened with other JARs with invalid manifest entries:
> - I have signed those JARs and included them in a WebStart application
> - I started the application with 8u102 32-bit {{javaws}}
> - The JARs were downloaded and their entries signatures verified
> - As there were entries in the manifest that are not present in the JAR, the file was not seen as completely signed with one signature, but Java remembered for each entry with which signature it was signed
> This already is not too nice as it slows down the application as now for each class that gets loaded the signature has to be retrieved from a map and a list instead of having just one signature for all entries. But it gets much worse:
> - The acutal application was to be executed with 8u102 64-bit, so the 32-bit one wrote its session information out into files, including the information about verified JARs and also their entries if needed, and starts the 64-bit JVM
> - The 64-bit JVM loads this session information and thus does not have to do the time-consuming verification of the JARs all over again
> - Unfortunately since 8u91 or so there is a bug in this session reading and writing algorithm, so that some of the entry names get crippled with additional characters in-between
> - If now a class should be loaded that has such a crippled entry in the JAR-entry-to-signature map, the entry is not found and the class is considered as not signed which will block the application from further execution
> Of course this second part is a bug in Java, but it would work flawlessly if the JARs would not have invalid sections.
--
This message was sent by Atlassian JIRA
(v7.2.2#72004)
More information about the jboss-jira
mailing list