cyclonedx-cli icon indicating copy to clipboard operation
cyclonedx-cli copied to clipboard

La dernière version linux Cyclonedx-cli valide avec succés le fichier json cycloneDX alors que CyberWatch détecte une erreur fatale lors de l'import

Open freygagne opened this issue 10 months ago • 1 comments

l’erreur interne retournée par Cyberwatch est la suivante: TypeError (no implicit conversion of String into Integer): Completed 500 Internal Server Error

La dernière version de l'outil linux Cyclonedx-cli a validé avec succès le fichier comme ci-dessous : root@francois:# ./cyclonedx-linux validate --input-file SBOM_1.json BOM validated successfully.

le fichier cycloneDx json est décrit ci_après: { "bomFormat" : "CycloneDX", "specVersion" : "1.5", "serialNumber" : "urn:uuid:a99c3eff-7254-496d-9685-8ab1155e928a", "version" : 1, "metadata" : { "timestamp" : "2024-08-09T09:22:17Z", "tools" : [ { "vendor" : "OWASP", "name" : "Dependency-Track", "version" : "4.11.5" } ], "component" : { "type" : "operating-system", "bom-ref" : "d4e9e208-7ab7-45e5-a45e-ef4a54d92171", "name" : "OS-WINDOWS10-SBOM", "version" : "COTS de niveau 1" } } }

Après investigation, La correction consiste à

  1. Remplacer au niveau du champs metadata les crochets [] (utilisés pour les tableaux) par des accolades {} (utilisées pour les objets) et
  2. Ajouter le record "components" puis rajouter d'autres accolades juste après.

"tools" : { "components": [ { "vendor" : "OWASP", "name" : "Dependency-Track", "version" : "4.11.5" } ] },

le winmerge du fichier à gauche après correction et à droite avant correction est en attachement.

Image

L'erreur non détéctée par cycloneDX-cli sous linux est il un bug de cet outil ? Ou est un bug de CyberWatch qui devrait accepter ce fichier en import comme valide au regard du standard OWASP CycloneDX ?

freygagne avatar Feb 21 '25 09:02 freygagne

@freygagne Version 1.5 introduced a new format for tools using components and services, and deprecated the old one, see: https://cyclonedx.org/docs/1.6/json/#metadata_tools_oneOf_i0_components https://cyclonedx.org/docs/1.6/json/#tab-pane_metadata_tools_oneOf_i1 The left hand side is actually wrong because "vendor" is not an attribute of component (use maybe manufacturer). The right hand side is valid (even though it is deprecated).

andreas-hilti avatar Feb 21 '25 19:02 andreas-hilti