Ejemplo n.º 1
0
def get_software(product_name, version):
    """
    Get CVEs from CPE with corresponding version and product name
    ---
    tags:
      - CVE
    parameters:
      - name: product_name
        in: path
        required: true
        type: string
        description: name of the CPE product
      - name: version
        in: path
        required: true
        type: string
        description: CPE version
    responses:
      200:
        description: Get corresponding CVEs
      408:
        description: Request timeout
    """
    cves = CVE.query.join(
        CVE.cpes).filter(CPE.version == version).join(Product).filter(
            Product.name == product_name).all()

    return {"cves": cves_schema.dump(cves)}
Ejemplo n.º 2
0
def all_cves():
    """
    Get all CVEs
    ---
    tags:
      - CVE
    responses:
      200:
        description: Get CVEs
    """
    cves = CVE.query.all()

    return {"cves": cves_schema.dump(cves)}
Ejemplo n.º 3
0
def cve_last_week():
    """
    Get CVEs from last week of the year
    ---
    tags:
      - CVE
    responses:
      200:
        description: Get CVEs from last week of the year
      408:
        description: Request timeout
    """
    # FIXME: get rid of hardcoded year
    cves = CVE.query.filter(2019 == db.extract("year", CVE.published_date),
                            db.extract("week",
                                       CVE.published_date) == 52).all()

    return {"cves": cves_schema.dump(cves)}
Ejemplo n.º 4
0
def cve_last_year():
    """
    Get CVEs from current year
    ---
    tags:
      - CVE
    responses:
      200:
        description: Get CVEs from current year
      408:
        description: Request timeout
    """
    current_time = datetime.now()

    cves = CVE.query.filter(
        current_time.year == db.extract("year", CVE.published_date)).all()

    return {"cves": cves_schema.dump(cves)}
Ejemplo n.º 5
0
def cve_latest():
    """
    Get 30 latest CVEs
    ---
    tags:
      - CVE
    responses:
      200:
        description: Get CVEs from last day of the year
      408:
        description: Request timeout
    """
    current_time = datetime.now()

    cves = CVE.query.filter(
        current_time.year == db.extract("year", CVE.published_date)).order_by(
            CVE.published_date.desc()).limit(30).all()

    return {"cves": cves_schema.dump(cves)}