VYPR
Moderate severityNVD Advisory· Published May 16, 2022· Updated Aug 3, 2024

Leaking password protected articles content due to improper access control in publify/publify

CVE-2022-1553

Description

Leaking password protected articles content due to improper access control in GitHub repository publify/publify prior to 9.2.8. Attackers can leverage this vulnerability to view the contents of any password-protected article present on the publify website, compromising confidentiality and integrity of users.

Affected packages

Versions sourced from the GitHub Security Advisory.

PackageAffected versionsPatched versions
publify_coreRubyGems
< 9.2.89.2.8

Affected products

1

Patches

1
1a78f16f4608

Do not create article meta description for password-protected articles

https://github.com/publify/publifyMatijs van ZuijlenMay 14, 2022via ghsa
3 files changed · +33 3
  • publify_core/app/controllers/articles_controller.rb+4 1 modified
    @@ -166,7 +166,10 @@ def show_article
           format.html do
             @comment = Comment.new
             @page_title = this_blog.article_title_template.to_title(@article, this_blog, params)
    -        @description = this_blog.article_desc_template.to_title(@article, this_blog, params)
    +        if @article.password.blank?
    +          @description = this_blog.article_desc_template.
    +            to_title(@article, this_blog, params)
    +        end
     
             @keywords = @article.tags.map(&:name).join(", ")
             render "articles/#{@article.post_type}"
    
  • publify_core/spec/controllers/articles_controller_spec.rb+19 0 modified
    @@ -483,6 +483,25 @@
               to raise_error ActiveRecord::RecordNotFound
           end
         end
    +
    +    context "when the article is password protected" do
    +      render_views
    +
    +      let!(:blog) { create(:blog, permalink_format: "/%title%.html") }
    +      let!(:article) do
    +        create(:article, title: "Secretive", body: "protected foobar", password: "password")
    +      end
    +
    +      it "shows a password form for the article" do
    +        get :redirect, params: { from: "secretive.html" }
    +        expect(response.body).to have_selector('input[id="article_password"]', count: 1)
    +      end
    +
    +      it "does not include the article body anywhere" do
    +        get :redirect, params: { from: "secretive.html" }
    +        expect(response.body).not_to include article.body
    +      end
    +    end
       end
     
       describe "#check_password" do
    
  • spec/controllers/articles_controller_spec.rb+10 2 modified
    @@ -99,12 +99,20 @@
             end
     
             context "when the article is password protected" do
    -          let(:article) { create(:article, password: "password") }
    +          let(:article) do
    +            create(:article, title: "Secretive", body: "protected foobar",
    +                             password: "password")
    +          end
     
    -          it "article alone should be password protected" do
    +          it "shows a password form for the article" do
                 get :redirect, params: { from: from_param }
                 expect(response.body).to have_selector('input[id="article_password"]', count: 1)
               end
    +
    +          it "does not include the article body anywhere" do
    +            get :redirect, params: { from: from_param }
    +            expect(response.body).not_to include article.body
    +          end
             end
           end
     
    

Vulnerability mechanics

Generated by null/stub on May 9, 2026. Inputs: CWE entries + fix-commit diffs from this CVE's patches. Citations validated against bundle.

References

5

News mentions

0

No linked articles in our index yet.