@@ -130,8 +130,8 @@ public static String peerCertificateInfo(Certificate certificate, String prefix)
130130 try {
131131 return String .format ("%s subject: %s, subject alternative names: %s, " +
132132 "issuer: %s, not valid after: %s, X.509 usage extensions: %s" ,
133- prefix , c .getSubjectDN ().getName (), sans (c , "," ), c .getIssuerDN ().getName (),
134- c .getNotAfter (), extensions (c ));
133+ stripCRLF ( prefix ), stripCRLF ( c .getSubjectDN ().getName ()), stripCRLF ( sans (c , "," )), stripCRLF ( c .getIssuerDN ().getName () ),
134+ c .getNotAfter (), stripCRLF ( extensions (c ) ));
135135 } catch (Exception e ) {
136136 return "Error while retrieving " + prefix + " certificate information" ;
137137 }
@@ -173,6 +173,14 @@ public static String extensionPrettyPrint(String oid, byte[] derOctetString, X50
173173 }
174174 }
175175
176+ /**
177+ * Strips carriage return (CR) and line feed (LF) characters to mitigate CWE-117.
178+ * @return sanitised string value
179+ */
180+ public static String stripCRLF (String value ) {
181+ return value .replaceAll ("\r " , "" ).replaceAll ("\n " , "" );
182+ }
183+
176184 private static String extensions (X509Certificate certificate ) {
177185 List <String > extensions = new ArrayList <String >();
178186 for (String oid : certificate .getCriticalExtensionOIDs ()) {
0 commit comments