Skip to content

Commit 2f8c90b

Browse files
jasnowsimi
authored andcommitted
Add "double reported" advisory check
1 parent d0d3035 commit 2f8c90b

4 files changed

Lines changed: 38 additions & 38 deletions

File tree

gems/yard/CVE-2026-41493.yml

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
gem: yard
33
cve: 2026-41493
44
ghsa: 3jfp-46x4-xgfj
5-
url: https://github.com/lsegal/yard/security/advisories/GHSA-3jfp-46x4-xgfj
5+
url: https://nvd.nist.gov/vuln/detail/CVE-2026-41493
66
title: Possible arbitrary path traversal and file access via yard server
77
date: 2026-04-17
88
description: |
@@ -37,6 +37,7 @@ related:
3737
url:
3838
- https://nvd.nist.gov/vuln/detail/CVE-2026-41493
3939
- https://github.com/lsegal/yard/releases/tag/v0.9.42
40+
- https://my.diffend.io/gems/yard/0.9.41/0.9.42
4041
- https://github.com/lsegal/yard/security/advisories/GHSA-3jfp-46x4-xgfj
4142
- https://github.com/lsegal/yard/security/advisories/GHSA-xfhh-rx56-rxcr
4243
- https://github.com/advisories/GHSA-3jfp-46x4-xgfj

gems/yard/GHSA-3jfp-46x4-xgfj.yml

Lines changed: 0 additions & 37 deletions
This file was deleted.

spec/advisories_spec.rb

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,17 @@
11
require 'spec_helper'
22
require 'gem_advisory_example'
33
require 'ruby_advisory_example'
4+
require 'advisory_dir_example'
45

56
describe "gems" do
67
Dir.glob(File.join(ROOT,'gems/*/*')) do |path|
78
include_examples 'Gem Advisory', path
89
end
910

11+
Dir.glob(File.join(File.dirname(__FILE__), '../gems/*')) do |dir|
12+
include_examples 'Advisory Directory', dir
13+
end
14+
1015
let(:dir) { File.join(ROOT,'gems') }
1116
let(:advisory_dirs) { Dir.glob('*', base: dir) }
1217

@@ -31,4 +36,8 @@
3136
Dir.glob(File.join(ROOT, 'rubies/*/*')) do |path|
3237
include_examples 'Rubies Advisory', path
3338
end
39+
40+
Dir.glob(File.join(File.dirname(__FILE__), '../rubies/*')) do |dir|
41+
include_examples 'Advisory Directory', dir
42+
end
3443
end

spec/advisory_dir_example.rb

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
require 'rspec'
2+
require 'date'
3+
4+
shared_examples_for "Advisory Directory" do |dir|
5+
describe dir do
6+
let(:advisory_paths) { Dir.glob(File.join(dir,'*.yml')) }
7+
let(:advisories) do
8+
advisory_paths.map do |path|
9+
YAML.safe_load_file(path, permitted_classes: [Date])
10+
end
11+
end
12+
13+
it "must not contain duplicate CVE IDs" do
14+
cve_ids = advisories.map { |advisory| advisory['cve'] }
15+
cve_ids.compact!
16+
17+
expect(cve_ids).to eq(cve_ids.uniq)
18+
end
19+
20+
it "must not contain duplicate GHSA IDs" do
21+
ghsa_ids = advisories.map { |advisory| advisory['ghsa'] }.compact
22+
ghsa_ids.compact!
23+
24+
expect(ghsa_ids).to eq(ghsa_ids.uniq)
25+
end
26+
end
27+
end

0 commit comments

Comments
 (0)