CSAF - Common Security Advisory Framework
Contents
Description
The Common Security Advisory Framework (CSAF) Version 2.0 is the definitive reference for the language
which supports creation, update, and interoperable exchange of security advisories as structured
information on products, vulnerabilities and the status of impact and remediation among interested
parties.
<https://docs.oasis-open.org/csaf/csaf/v2.0/os/csaf-v2.0-os.html>
CSAFPROPERTIES
These properties are inherited from CSAF::Document.
document
Return CSAF::Type::Document.
product_tree
Return CSAF::Type::ProductTree.
vulnerabilities
Return CSAF::Type::Vulnerabilities.
HELPERS
TO_JSON
builder
Return CSAF::Builder.
render
Alias for "renderer->render($format)".
my $doc = $csaf->render('html');
renderer
Return CSAF::Renderer.
my $doc = $csaf->renderer->render('html');
validate
Alias for "validator->validate".
validator
Return CSAF::Validator.
from_string
Parse CSAF document string and return CSAF.
from_file
Parse CSAF document file and return CSAF.
to_string
Render CSAF document.
my $json = $csaf->to_string;
writer
Return CSAF::Writer.
License And Copyright
This software is copyright (c) 2023-2024 by Giuseppe Di Terlizzi.
This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5
programming language system itself.
perl v5.40.1 2025-07-04 CSAF(3pm)
Name
CSAF - Common Security Advisory Framework
Support
Bugs/FeatureRequests
Please report any bugs or feature requests through the issue tracker at
<https://github.com/giterlizzi/perl-CSAF/issues>. You will be notified automatically of any progress on
your issue.
SourceCode
This is open source software. The code repository is available for public review and contribution under
the terms of the license.
<https://github.com/giterlizzi/perl-CSAF>
git clone https://github.com/giterlizzi/perl-CSAF.git
Synopsis
use CSAF;
my $csaf = CSAF->new;
$csaf->document->title('Base CSAF Document');
$csaf->document->category('csaf_security_advisory');
$csaf->document->publisher(
category => 'vendor',
name => 'CSAF',
namespace => 'https://csaf.io'
);
my $tracking = $csaf->document->tracking(
id => 'CSAF:2024-001',
status => 'final',
version => '1.0.0',
initial_release_date => 'now',
current_release_date => 'now'
);
$tracking->revision_history->add(
date => 'now',
summary => 'First release',
number => '1'
);
my @errors = $csaf->validate;
if (@errors) {
say $_ for (@errors);
Carp::croak "Validation errors";
}
# Save CSAF documents using the
$csaf->writer(directory => '/var/www/html/csaf')->write;
