Cybersecurity-Projects/PROJECTS/beginner/deserialization-gadget-lab/marshalsea.gemspec

37 lines
1.3 KiB
Ruby

# ©AngelaMos | 2026
# marshalsea.gemspec
# frozen_string_literal: true
require_relative "lib/marshalsea/version"
Gem::Specification.new do |spec|
spec.name = "marshalsea"
spec.version = Marshalsea::VERSION
spec.authors = ["Carter Perez"]
spec.email = ["carterperez@angelamos.com"]
spec.summary = "Ruby object-deserialization security lab: inspect, understand, and defend against gadget chains"
spec.description = "marshalsea parses Ruby Marshal streams without deserializing them, discovers " \
"gadget sinks by runtime reflection, and ships the defenses that stop them. Built " \
"as a teaching artifact for the deserialization vulnerability class."
spec.homepage = "https://github.com/CarterPerez-dev/Cybersecurity-Projects"
spec.license = "AGPL-3.0-or-later"
spec.required_ruby_version = ">= 3.4"
spec.metadata = {
"source_code_uri" => "#{spec.homepage}/tree/main/PROJECTS/beginner/deserialization-gadget-lab",
"bug_tracker_uri" => "#{spec.homepage}/issues",
"documentation_uri" => "#{spec.homepage}/tree/main/PROJECTS/beginner/deserialization-gadget-lab/learn",
"rubygems_mfa_required" => "true"
}
spec.files = Dir[
"lib/**/*.rb",
"README.md",
"LICENSE"
]
spec.require_paths = ["lib"]
end