Skip to content

Conversation

@ppkarwasz
Copy link
Contributor

This pull request proposes a new design for the Apache Solr security page, as discussed on dev@solr, and introduces support for richer metadata in vulnerability-related articles.

Key Changes

  • Full YAML front matter support in Markdown articles

    • The standard PyMarkdown MetaExtension only parses flat YAML front matter.
    • This change introduces YamlFrontMatterExtension, which supports complex YAML documents inside front matter.
  • Defined YAML structure for vulnerability articles

    • Applies to vulnerabilities in Apache Solr itself or in its dependencies.
    • Contains sufficient information to generate a CycloneDX VEX file.
  • Enhanced security page

    • Lists vulnerabilities by Solr minor version along with their status (in_triage, not_exploitable, affected).
    • Displays detailed vulnerability articles, with layout variations depending on the type and assessment state.

Work in progress

I am still working on generating CycloneDX documents (VDR and VEX) from the Markdown articles.
However, early feedback from the maintainers and the community would be valuable to ensure I am heading in the right direction before completing the implementation.

Preview

1. YAML front matter

The YAML front matter of the articles looks like this:

cve: CVE-2024-51504
jira: SOLR-17809
severity: important
category:
  - solr/vex
vulnerable_component:
  name: zookeeper
  versions:
    - introduced: 3.9.0
      last_affected: 3.9.2
impacted_component:
  name: Apache Solr
  versions:
    - introduced: 9.4.0
      fixed: 9.9.0
analysis:
  state: not_affected
  justification: requires_configuration
title: "Apache ZooKeeper: Authentication bypass with IP-based authentication in Admin Server"

2. Vulnerabilities Table

Lists vulnerabilities by Solr minor version with their current status.

Show screenshot

Vulnerabilities table

3. Vulnerability Articles

a. Vulnerability in Solr itself

Show screenshot

Solr CVE example

b. VEX entry in triage

Show screenshot

Solr VEX triage

c. VEX entry assessed

Show screenshot

Solr VEX assessed

Add a new `yaml_front_matter` extension to Pelican that enables parsing YAML front matter from Markdown content. This mirrors the behavior of static site generators like Jekyll and Hugo, allowing users to define arbitrary metadata (e.g., title, tags, date) at the top of Markdown files using a YAML block.

While Pelican's default Markdown metadata support only handles flat key-value pairs, this extension allows for nested and structured data—enabling use cases such as VEX documents and other complex front matter schemas.

Improves compatibility with common Markdown authoring workflows.

References:
- https://jekyllrb.com/docs/front-matter/
- https://gohugo.io/content-management/front-matter/
Introduce a JSON Schema (`plugins/vex/schema/vex_article.schema.yaml`) for
validating vulnerability-related articles. The schema captures all metadata
needed to describe a vulnerability in Apache Solr or in a bundled dependency.

Also add a parser that converts article front matter into objects optimized for use in Jinja2 templates.
Introduce a Jinja2 template that generates data views for vulnerability
articles, with three example articles included. The template supports both
vulnerabilities in Apache Solr itself and in bundled dependencies.
@ppkarwasz ppkarwasz marked this pull request as draft August 6, 2025 13:12
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

Successfully merging this pull request may close these issues.

1 participant