XSS експлойт документації RDoc, згенерованої rdoc (CVE-2013-0256)
Опублікував usa 06-02-2013
Переклав: Andrii Furmanets
Документація RDoc, згенерована rdoc, включеним у ruby, вразлива до XSS експлойту. Всім користувачам ruby рекомендується оновити ruby до новішої версії, яка включає виправлений з точки зору безпеки RDoc. Якщо ви публікуєте документацію RDoc , згенеровану rdoc, вам рекомендується застосувати патч для документації або перегенерувати її з виправленим з точки зору безпеки RDoc.
Вплив
Документація RDoc, згенерована rdoc 2.3.0 через rdoc 3.12 та пререлізами до rdoc 4.0.0.preview2.1, вразлива до XSS експлойту. Цей експлойт може призвести до розкриття cookie третім сторонам.
Деталі
Експлойт існує в darkfish.js, який копіюється з місця встановлення RDoc до згенерованої документації.
RDoc - це інструмент генерації статичної документації. Патч бібліотеки самої по собі недостатньо для виправлення цього експлойту. Ті, хто хостить документацію rdoc , повинні застосувати наступний патч.
Рішення
Будь ласка, застосуйте наступний патч до документації rdoc. Якщо застосовано, ігноруючи пробіли, цей патч виправить всі зачеплені версії:
diff --git darkfish.js darkfish.js
index 4be722f..f26fd45 100644
--- darkfish.js
+++ darkfish.js
@@ -109,13 +109,15 @@ function hookSearch() {
function highlightTarget( anchor ) {
console.debug( "Highlighting target '%s'.", anchor );
- $("a[name=" + anchor + "]").each( function() {
- if ( !$(this).parent().parent().hasClass('target-section') ) {
- console.debug( "Wrapping the target-section" );
- $('div.method-detail').unwrap( 'div.target-section' );
- $(this).parent().wrap( '<div class="target-section"></div>' );
- } else {
- console.debug( "Already wrapped." );
+ $("a[name]").each( function() {
+ if ( $(this).attr("name") == anchor ) {
+ if ( !$(this).parent().parent().hasClass('target-section') ) {
+ console.debug( "Wrapping the target-section" );
+ $('div.method-detail').unwrap( 'div.target-section' );
+ $(this).parent().wrap( '<div class="target-section"></div>' );
+ } else {
+ console.debug( "Already wrapped." );
+ }
}
});
};І, якщо ви використовуєте ruby 1.9, будь ласка, оновіться до ruby-1.9.3 рівня патчу 385. Якщо ви використовуєте ruby 2.0.0 rc1 або раніше або ruby trunk, будь ласка, оновіться до ruby 2.0.0 rc2 або ревізії trunk 39102 або пізнішої. Ви також можете оновити RDoc самостійно з rubygems до RDoc 3.12.1 або RDoc 4.0.0.rc.2.
Зачеплені версії
- Всі версії ruby 1.9 до ruby 1.9.3 рівня патчу 383
- Всі версії ruby 2.0 до ruby 2.0.0 rc2 або до ревізії trunk 39102
Подяка
Цей експлойт виявлено Evgeny Ermakov <corwmh@gmail.com>.
Цій вразливості присвоєно ідентифікатор CVE CVE-2013-0256.
Історія
- Спочатку опубліковано 2013-02-06 13:30:00 (UTC)
Останні новини
Вийшов Ruby 3.3.12
Вийшов Ruby 3.3.12.
Опублікував hsbt 16-07-2026
Вийшов Ruby 4.0.6
Вийшов Ruby 4.0.6.
Опублікував k0kubun 14-07-2026
Вийшов Ruby 3.4.10
Вийшов Ruby 3.4.10.
Опублікував nagachika 30-06-2026
Вийшов Ruby 4.0.5
Вийшов Ruby 4.0.5.
Опублікував k0kubun 20-05-2026