@@ -104,8 +104,8 @@ public static String peerCertificateInfo(Certificate certificate, String prefix)
104104 try {
105105 return String .format ("%s subject: %s, subject alternative names: %s, " +
106106 "issuer: %s, not valid after: %s, X.509 usage extensions: %s" ,
107- prefix , c .getSubjectDN ().getName (), sans (c , "," ), c .getIssuerDN ().getName (),
108- c .getNotAfter (), extensions (c ));
107+ stripCRLF ( prefix ), stripCRLF ( c .getSubjectDN ().getName ()), stripCRLF ( sans (c , "," )), stripCRLF ( c .getIssuerDN ().getName () ),
108+ c .getNotAfter (), stripCRLF ( extensions (c ) ));
109109 } catch (Exception e ) {
110110 return "Error while retrieving " + prefix + " certificate information" ;
111111 }
@@ -145,6 +145,14 @@ public static String extensionPrettyPrint(String oid, byte[] derOctetString, X50
145145 }
146146 }
147147
148+ /**
149+ * Strips carriage return (CR) and line feed (LF) characters to mitigate CWE-117.
150+ * @return sanitised string value
151+ */
152+ public static String stripCRLF (String value ) {
153+ return value .replaceAll ("\r " , "" ).replaceAll ("\n " , "" );
154+ }
155+
148156 private static String extensions (X509Certificate certificate ) {
149157 List <String > extensions = new ArrayList <>();
150158 for (String oid : certificate .getCriticalExtensionOIDs ()) {
0 commit comments