publify_core 11.0.1 → 11.0.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 54204326dfdc03206645e1fd7500d9bfa643d6dda4322ac507f274cb5f54f6f4
4
- data.tar.gz: 707f57d3ee216361b5c8609dca39d9530a1028d88a7ad6074ada18ce54161339
3
+ metadata.gz: 16a87fd4d120dd099f95cf2a12b656ae5f6499f8f00a6ab3508dab3d348265e2
4
+ data.tar.gz: c38df0645ff6406bc290db81d899b3edc0a9e6fa982fad8b0ade600600530e1d
5
5
  SHA512:
6
- metadata.gz: 5f605221ed9190fa5cf50af34c8f0cde8d328bc5390a36fb251953d599b6ee2b307e6238a9d1f53379d87308562f33fb6d2bd2074afe5dcbb5096c6e727d0813
7
- data.tar.gz: 43abbedcaa37557670340fbd8d6304404b758d1b860f62594b03ab48e4ee2278cbc1b197de224db29cb75b71a4232e4dd7439a7551603eff21b1efb31aef79de
6
+ metadata.gz: cefee755bf83488c84cb9ed7d67c77d6bfb5f93c4645dc62e2d6f7de7e7877be4fce12f4afccdd406cde14e613af5730fec6bdf6926c4c3715e6bad79d8faaaa
7
+ data.tar.gz: 8a80743ba80d26b1673e6f96ce471583ffafab0097de14417b08e7b58281ce230150887dab2c4cef537c0d4d9d6fc2111e79d3e63558fe7f3f3e9fcbd5d49bd3
data/CHANGELOG.md CHANGED
@@ -1,5 +1,14 @@
1
1
  # Changelog
2
2
 
3
+ ## 11.0.2 / 2026-10-31
4
+
5
+ This release fixes a security issue in the article password checker which could
6
+ expose the contents of unpublished articles.
7
+
8
+ * Only allow password check for published articles ([#275] by [mvz])
9
+
10
+ [#275]: https://github.com/publify/publify_core/pull/275
11
+
3
12
  ## 11.0.1 / 2026-10-23
4
13
 
5
14
  This release fixes a security issue where a user with publisher role can update
@@ -67,8 +67,13 @@ class ArticlesController < ContentController
67
67
  def check_password
68
68
  return unless request.xhr?
69
69
 
70
- @article = Article.find(params[:article][:id])
71
- if @article.password == params[:article][:password]
70
+ form_params = params.require(:article).permit(:id, :password)
71
+
72
+ @article = this_blog.published_articles.find(form_params[:id])
73
+ expected = @article.password
74
+ actual = form_params[:password]
75
+
76
+ if ActiveSupport::SecurityUtils.secure_compare(expected, actual)
72
77
  render partial: "articles/full_article_content", locals: { article: @article }
73
78
  else
74
79
  render partial: "articles/password_form", locals: { article: @article }
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module PublifyCore
4
- VERSION = "11.0.1"
4
+ VERSION = "11.0.2"
5
5
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: publify_core
3
3
  version: !ruby/object:Gem::Version
4
- version: 11.0.1
4
+ version: 11.0.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Matijs van Zuijlen
@@ -903,7 +903,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
903
903
  - !ruby/object:Gem::Version
904
904
  version: '0'
905
905
  requirements: []
906
- rubygems_version: 4.0.22
906
+ rubygems_version: 4.0.23
907
907
  specification_version: 4
908
908
  summary: Core engine for the Publify blogging system.
909
909
  test_files: []