Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Amélioration du template de l'advisory #164

Open
BarbUk opened this issue Oct 26, 2023 · 11 comments
Open

Amélioration du template de l'advisory #164

BarbUk opened this issue Oct 26, 2023 · 11 comments

Comments

@BarbUk
Copy link
Contributor

BarbUk commented Oct 26, 2023

Pour modifier l'api, il faut réorganiser les variables du front matter des CVE.

Nous avons actuellement un front matter avec les variables suivantes:

https://raw.githubusercontent.com/friends-of-presta/security-advisories/main/_posts/2023-05-30-myinventory.md

---
layout: post
title: "[CVE-2023-30197] Improper Limitation of a Pathname to a Restricted Directory in Webbax - My inventory module for PrestaShop"
categories: modules
author:
- TouchWeb.fr
- 202 Ecommerce
- Friends-Of-Presta.org
meta: "CVE,PrestaShop,myinventory"
severity: "high (7.5), GDPR violation"
---

Ces variables sont utilisées dans l'api ainsi que pour la recherche.

Pour avancer, il faut déterminer les variables que l'on veut centraliser dans le front matter et qui permettra de dynamiser certain blocs.

@BarbUk
Copy link
Contributor Author

BarbUk commented Oct 26, 2023

Voici ce que j'avais commencé:

---
layout: post
title: "[CVE-2023-33664] Improper neutralization of a SQL parameter in aicombinationsonfly module for PrestaShop"

product: 
    platform: PrestaShop
    type: module
    name: aicombinationsonfly
    author: ai-dev

vulnerability:
    cve: CVE-2023-33664
    cwe: 89
    cvss: CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
    versions_affected:
        from: 
        to: < 0.3.1 
    requires_deletion: false
    source: Friends-Of-Presta.org
    published_date: 2023-06-28
    severity: critical (9.8)

categories: modules

author:
- 202-ecommerce.com
- TouchWeb.fr
- Friends-Of-Presta.org

meta: "CVE,PrestaShop,aicombinationsonfly"
---

Ce qui permettrai de définir le bloc Summary comme ça:

## Summary

* **CVE ID**: [{{ page.vulnerability.cve }}](https://cve.mitre.org/cgi-bin/cvename.cgi?name={{ page.vulnerability.cve.id }})
* **Published at**: {{ page.vulnerability.published_date }}
* **Advisory source**: {{ page.vulnerability.source }}
* **Platform**: {{ page.product.platform }}
* **Product**: {{ page.product.name }}
* **Impacted release**: {{ page.vulnerability.versions_affected.from }} {{ page.vulnerability.versions_affected.to }}
* **Product author**: {{ page.product.author }}
* **Weakness**: [CWE-{{ page.vulnerability.cwe }}](https://cwe.mitre.org/data/definitions/{{ page.vulnerability.cwe.id }}.html)
* **Severity**: {{ page.vulnerability.severity }}

@StoreCommanderDev
Copy link
Contributor

Ne pas oublier le : Discover credit qui doit se retrouver dans Summary si j'ai bien tout suivi

@maxime-morel
Copy link
Contributor

Le titre serait à renommer selon moi : Amélioration du template de l'advisory
L'objectif premier n'est pas d'améliorer l'API, ça me semble être un besoin secondaire.

Ce qui nous intéresse ici :

  • Uniformiser les informations du template (éviter les copier/coller, éviter les fautes d’orthographes ou oublis)
  • Simplifier la création de l'advisory (réduire le nombre de données à renseigner, préfill des informations en fonction du CWE)
  • Simplifier la mise à jour des advisories passées (Ne pas avoir à re-commiter sur les anciens templates en cas de changement de syntax/contenu lié au CWE)
  • En profiter pour ajouter/améliorer les contenus (Cf. Discovery credits)

Qu'en pensez vous ?

@maxime-morel
Copy link
Contributor

Liste des variables que je vois pour les advisories des modules :
(en prenant pour base la structure de @BarbUk)

  • CVE ID (Ex: CVE-2023-45378)
  • Publication date (Ex: 2023-06-28)
  • Type (Ex: Module)
  • Advisory authors (Same format as actual)
  • Discovery credits (Same format as authors)

Module:

  • Module name (Ex: PrestaBlog)
  • Module technical name (Ex: prestablog)
  • Module author (Ex: HDclic)

Vulnerability:

  • CWE (Ex: CWE-89)
  • CVSS 3.1 Vector (Ex: AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H)
  • Version:
    • From (Ex: 1.0.0)
    • Up to (Ex: 4.4.7)
    • Additional info (Ex: considered to be “truly” fixed on 4.4.8 - see note below)
  • Is exploited (Ex: true. Will be used to add a warning if actively exploited such as `WARNING : This exploit is actively used... -> Quelque chose de générique et court)
  • Is exploited additional information Ex: [...] to deploy a webskimmer to massively steal credit cards.
  • FrontController concealment (Ex: true)

Patch :

  • patch path : (Ex: patch_referralbyphone,patch)
    (Serait un fichier séparé)

+ Les autres variables actuelles qui peuvent nous servir, comme le meta, layout, etc..

Le CWE peut générer automatiquement le contenu.
Exemple avec le CWE-89:

Title:

[{{ cve_id }}] Improper neutralization of SQL parameter(s) in {{ module.name }} module for PrestaShop

Short Description:

In the module “{{ module.name }}” ({{ module.technical_name }}) from version {{ vulnerability.version.from }} up to version {{ vulnerability.version.up_to }} from {{ module.author }} for PrestaShop, a guest can perform SQL injection in affected versions.

Des conditions doivent être mises en place en fonction du CWE et en fonction des paramètres de version (Par exemple si from exist ou non.

Idéalement la severity sera également issue vector string.

Les autres informations, comme la description longue ou le POC n'ont selon moi pas d'intérêt particulier à être mis en variable sauf si ceci peut aider pour l'API.

@BarbUk BarbUk changed the title Amélioration de l'api Amélioration du template de l'advisory Nov 2, 2023
@BarbUk
Copy link
Contributor Author

BarbUk commented Nov 2, 2023

Le titre serait à renommer selon moi : Amélioration du template de l'advisory

Merci pour le retour.
J'ai changé le titre.

Le but est donc:

  • de mettre en place un template qui permet l'automatisation (ou en tout cas la simplification) de la publication d'une CVE
  • pour cela, centraliser des variables dans le front matter
  • qui pourront donc être utilisée pour retourner une api plus complète.

@jf-viguier
Copy link
Member

versions_affected:
from:
to: < 0.3.1

to: devrait être un numéro de version fixe sans <

il manque la version on c'est fixé ou l'info si c'est fixé ou non
:fixedinversion: 0.3.1


Pour la  severity: critical (9.8)

on peut se contenter du chiffre, ou alors rajouter un champ label, cela permettrait de filter les 9 et +

@BarbUk
Copy link
Contributor Author

BarbUk commented Nov 9, 2023

ajouter de la date de découverte de la CVE

@maxime-morel
Copy link
Contributor

Discuté en réunion :

  • Usage d'un array pour les versions (impact en en fonction des versions de PS par exemple)

@BarbUk
Copy link
Contributor Author

BarbUk commented Nov 9, 2023

Dans un second temps:

  • migration des CVE existantes sur le nouveau template
  • automatisation des textes de CWE

@maxime-morel
Copy link
Contributor

As discussed during meeting of Thursday 16, 2023:
"Discovery credits" would probably replace "Advisory source".
To validate in the new template.

@clotairer
Copy link
Contributor

clotairer commented Jan 9, 2024

In some rare cases like an security issue in a dependency like phpunit here : https://security.friendsofpresta.org/dependancies/2020/01/07/phpunit-CVE-2017-9841.html several modules are impacted.
JSON from CVElist manage an array :
https://github.com/CVEProject/cvelist/blob/master/2023/6xxx/CVE-2023-6921.json

  "affects": {
       "vendor": {
           "vendor_data": [
               {
                   "vendor_name": "PrestaShow",
                   "product": {
                       "product_data": [
                           {
                               "product_name": "PrestaShop Google Integrator",
                               "version": {
                                   "version_data": [
                                       {
                                           "version_affected": "<",
                                           "version_name": "0",
                                           "version_value": "2.1.4"
                                       }
                                   ]
                               }
                           }
                       ]
                   }
               }
           ]
       }
   },

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

5 participants