{"api_version":"1","generated_at":"2026-07-23T06:56:56+00:00","cve":"CVE-2015-2963","urls":{"html":"https://cve.report/CVE-2015-2963","api":"https://cve.report/api/cve/CVE-2015-2963.json","docs":"https://cve.report/api","cve_org":"https://www.cve.org/CVERecord?id=CVE-2015-2963","nvd":"https://nvd.nist.gov/vuln/detail/CVE-2015-2963"},"summary":{"title":"CVE-2015-2963","description":"The thoughtbot paperclip gem before 4.2.2 for Ruby does not consider the content-type value during media-type validation, which allows remote attackers to upload HTML documents and conduct cross-site scripting (XSS) attacks via a spoofed value, as demonstrated by image/jpeg.","state":"PUBLISHED","assigner":"jpcert","published_at":"2015-07-10 17:59:00","updated_at":"2026-05-06 22:30:45"},"problem_types":["CWE-79","n/a"],"metrics":[{"version":"2.0","source":"nvd@nist.gov","type":"Primary","score":"4.3","severity":"","vector":"AV:N/AC:M/Au:N/C:N/I:P/A:N","data":{"version":"2.0","vectorString":"AV:N/AC:M/Au:N/C:N/I:P/A:N","baseScore":4.3,"accessVector":"NETWORK","accessComplexity":"MEDIUM","authentication":"NONE","confidentialityImpact":"NONE","integrityImpact":"PARTIAL","availabilityImpact":"NONE"}}],"references":[{"url":"https://robots.thoughtbot.com/paperclip-security-release","name":"https://robots.thoughtbot.com/paperclip-security-release","refsource":"af854a3a-2127-422b-91ae-364da2661108","tags":["Vendor Advisory"],"title":"Paperclip Security Release","mime":"text/html","httpstatus":"200","archivestatus":"200"},{"url":"http://jvn.jp/en/jp/JVN83881261/index.html","name":"http://jvn.jp/en/jp/JVN83881261/index.html","refsource":"af854a3a-2127-422b-91ae-364da2661108","tags":["Vendor Advisory"],"title":"JVN#83881261: Ruby on Rails library Paperclip vulnerable to cross-site scripting","mime":"text/xml","httpstatus":"200","archivestatus":"200"},{"url":"http://openwall.com/lists/oss-security/2015/06/19/3","name":"http://openwall.com/lists/oss-security/2015/06/19/3","refsource":"af854a3a-2127-422b-91ae-364da2661108","tags":["Vendor Advisory"],"title":"oss-security - Re: CVE request: Content type spoofing in ruby gem paperclip <4.2.2","mime":"text/html","httpstatus":"200","archivestatus":"200"},{"url":"http://jvndb.jvn.jp/jvndb/JVNDB-2015-000088","name":"http://jvndb.jvn.jp/jvndb/JVNDB-2015-000088","refsource":"af854a3a-2127-422b-91ae-364da2661108","tags":["Vendor Advisory"],"title":"","mime":"text/html","httpstatus":"200","archivestatus":"200"},{"url":"http://www.securityfocus.com/bid/75304","name":"http://www.securityfocus.com/bid/75304","refsource":"af854a3a-2127-422b-91ae-364da2661108","tags":[],"title":"Ruby On Rails Paperclip CVE-2015-2963 Cross-Site Scripting Vulnerability","mime":"text/html","httpstatus":"200","archivestatus":"0"},{"url":"https://github.com/thoughtbot/paperclip/commit/9aee4112f36058cd28d5fe4a006d6981bd1eda57","name":"https://github.com/thoughtbot/paperclip/commit/9aee4112f36058cd28d5fe4a006d6981bd1eda57","refsource":"af854a3a-2127-422b-91ae-364da2661108","tags":["Exploit","Vendor Advisory"],"title":"Fix a possible security issue with spoofing · thoughtbot/paperclip@9aee411 · GitHub","mime":"text/html","httpstatus":"200","archivestatus":"200"},{"url":"https://www.cve.org/CVERecord?id=CVE-2015-2963","name":"CVE Program record","refsource":"CVE.ORG","tags":["canonical"]},{"url":"https://nvd.nist.gov/vuln/detail/CVE-2015-2963","name":"NVD vulnerability detail","refsource":"NVD","tags":["canonical","analysis"]}],"affected":[{"source":"CNA","vendor":"n/a","product":"n/a","version":"affected n/a","platforms":[]}],"timeline":[],"solutions":[],"workarounds":[],"exploits":[],"credits":[],"nvd_cpes":[{"cve_year":"2015","cve_id":"2963","vulnerable":"1","versionEndIncluding":"4.2.1","cpe1":"cpe","cpe2":"2.3","cpe3":"a","cpe4":"thoughtbot","cpe5":"paperclip","cpe6":"*","cpe7":"*","cpe8":"*","cpe9":"*","cpe10":"*","cpe11":"ruby","cpe12":"*","cpe13":"*"}],"vendor_comments":[],"enrichments":{"kev":null,"epss":null,"legacy_qids":[]},"source_records":{"cve_program":{"containers":{"adp":[{"providerMetadata":{"dateUpdated":"2024-08-06T05:32:20.697Z","orgId":"af854a3a-2127-422b-91ae-364da2661108","shortName":"CVE"},"references":[{"name":"75304","tags":["vdb-entry","x_refsource_BID","x_transferred"],"url":"http://www.securityfocus.com/bid/75304"},{"tags":["x_refsource_CONFIRM","x_transferred"],"url":"https://robots.thoughtbot.com/paperclip-security-release"},{"tags":["x_refsource_CONFIRM","x_transferred"],"url":"https://github.com/thoughtbot/paperclip/commit/9aee4112f36058cd28d5fe4a006d6981bd1eda57"},{"name":"JVN#83881261","tags":["third-party-advisory","x_refsource_JVN","x_transferred"],"url":"http://jvn.jp/en/jp/JVN83881261/index.html"},{"name":"JVNDB-2015-000088","tags":["third-party-advisory","x_refsource_JVNDB","x_transferred"],"url":"http://jvndb.jvn.jp/jvndb/JVNDB-2015-000088"},{"name":"[oss-security] 20150618 Re: CVE request: Content type spoofing in ruby gem paperclip <4.2.2","tags":["mailing-list","x_refsource_MLIST","x_transferred"],"url":"http://openwall.com/lists/oss-security/2015/06/19/3"}],"title":"CVE Program Container"}],"cna":{"affected":[{"product":"n/a","vendor":"n/a","versions":[{"status":"affected","version":"n/a"}]}],"datePublic":"2015-06-05T00:00:00.000Z","descriptions":[{"lang":"en","value":"The thoughtbot paperclip gem before 4.2.2 for Ruby does not consider the content-type value during media-type validation, which allows remote attackers to upload HTML documents and conduct cross-site scripting (XSS) attacks via a spoofed value, as demonstrated by image/jpeg."}],"problemTypes":[{"descriptions":[{"description":"n/a","lang":"en","type":"text"}]}],"providerMetadata":{"dateUpdated":"2016-12-01T15:57:02.000Z","orgId":"ede6fdc4-6654-4307-a26d-3331c018e2ce","shortName":"jpcert"},"references":[{"name":"75304","tags":["vdb-entry","x_refsource_BID"],"url":"http://www.securityfocus.com/bid/75304"},{"tags":["x_refsource_CONFIRM"],"url":"https://robots.thoughtbot.com/paperclip-security-release"},{"tags":["x_refsource_CONFIRM"],"url":"https://github.com/thoughtbot/paperclip/commit/9aee4112f36058cd28d5fe4a006d6981bd1eda57"},{"name":"JVN#83881261","tags":["third-party-advisory","x_refsource_JVN"],"url":"http://jvn.jp/en/jp/JVN83881261/index.html"},{"name":"JVNDB-2015-000088","tags":["third-party-advisory","x_refsource_JVNDB"],"url":"http://jvndb.jvn.jp/jvndb/JVNDB-2015-000088"},{"name":"[oss-security] 20150618 Re: CVE request: Content type spoofing in ruby gem paperclip <4.2.2","tags":["mailing-list","x_refsource_MLIST"],"url":"http://openwall.com/lists/oss-security/2015/06/19/3"}],"x_legacyV4Record":{"CVE_data_meta":{"ASSIGNER":"vultures@jpcert.or.jp","ID":"CVE-2015-2963","STATE":"PUBLIC"},"affects":{"vendor":{"vendor_data":[{"product":{"product_data":[{"product_name":"n/a","version":{"version_data":[{"version_value":"n/a"}]}}]},"vendor_name":"n/a"}]}},"data_format":"MITRE","data_type":"CVE","data_version":"4.0","description":{"description_data":[{"lang":"eng","value":"The thoughtbot paperclip gem before 4.2.2 for Ruby does not consider the content-type value during media-type validation, which allows remote attackers to upload HTML documents and conduct cross-site scripting (XSS) attacks via a spoofed value, as demonstrated by image/jpeg."}]},"problemtype":{"problemtype_data":[{"description":[{"lang":"eng","value":"n/a"}]}]},"references":{"reference_data":[{"name":"75304","refsource":"BID","url":"http://www.securityfocus.com/bid/75304"},{"name":"https://robots.thoughtbot.com/paperclip-security-release","refsource":"CONFIRM","url":"https://robots.thoughtbot.com/paperclip-security-release"},{"name":"https://github.com/thoughtbot/paperclip/commit/9aee4112f36058cd28d5fe4a006d6981bd1eda57","refsource":"CONFIRM","url":"https://github.com/thoughtbot/paperclip/commit/9aee4112f36058cd28d5fe4a006d6981bd1eda57"},{"name":"JVN#83881261","refsource":"JVN","url":"http://jvn.jp/en/jp/JVN83881261/index.html"},{"name":"JVNDB-2015-000088","refsource":"JVNDB","url":"http://jvndb.jvn.jp/jvndb/JVNDB-2015-000088"},{"name":"[oss-security] 20150618 Re: CVE request: Content type spoofing in ruby gem paperclip <4.2.2","refsource":"MLIST","url":"http://openwall.com/lists/oss-security/2015/06/19/3"}]}}}},"cveMetadata":{"assignerOrgId":"ede6fdc4-6654-4307-a26d-3331c018e2ce","assignerShortName":"jpcert","cveId":"CVE-2015-2963","datePublished":"2015-07-10T17:00:00.000Z","dateReserved":"2015-04-07T00:00:00.000Z","dateUpdated":"2024-08-06T05:32:20.697Z","state":"PUBLISHED"},"dataType":"CVE_RECORD","dataVersion":"5.1"},"nvd":{"publishedDate":"2015-07-10 17:59:00","lastModifiedDate":"2026-05-06 22:30:45","problem_types":["CWE-79","n/a"],"metrics":{"cvssMetricV2":[{"source":"nvd@nist.gov","type":"Primary","cvssData":{"version":"2.0","vectorString":"AV:N/AC:M/Au:N/C:N/I:P/A:N","baseScore":4.3,"accessVector":"NETWORK","accessComplexity":"MEDIUM","authentication":"NONE","confidentialityImpact":"NONE","integrityImpact":"PARTIAL","availabilityImpact":"NONE"},"baseSeverity":"MEDIUM","exploitabilityScore":8.6,"impactScore":2.9,"acInsufInfo":false,"obtainAllPrivilege":false,"obtainUserPrivilege":false,"obtainOtherPrivilege":false,"userInteractionRequired":true}]},"configurations":[{"nodes":[{"operator":"OR","negate":false,"cpeMatch":[{"vulnerable":true,"criteria":"cpe:2.3:a:thoughtbot:paperclip:*:*:*:*:*:ruby:*:*","versionEndIncluding":"4.2.1","matchCriteriaId":"DE525443-1C61-4909-A20A-38209B765FBE"}]}]}]},"legacy_mitre":{"record":{"CveYear":"2015","CveId":"2963","Ordinal":"1","Title":"CVE-2015-2963","CVE":"CVE-2015-2963","Year":"2015"},"notes":[{"CveYear":"2015","CveId":"2963","Ordinal":"1","NoteData":"The thoughtbot paperclip gem before 4.2.2 for Ruby does not consider the content-type value during media-type validation, which allows remote attackers to upload HTML documents and conduct cross-site scripting (XSS) attacks via a spoofed value, as demonstrated by image/jpeg.","Type":"Description","Title":"CVE-2015-2963"},{"CveYear":"2015","CveId":"2963","Ordinal":"2","NoteData":"2015-07-10","Type":"Other","Title":"Published"},{"CveYear":"2015","CveId":"2963","Ordinal":"3","NoteData":"2016-12-01","Type":"Other","Title":"Modified"}]}}}