Skip to content

Commit

Permalink
merge branch v2 (release 2.0.0-alpha.6)
Browse files Browse the repository at this point in the history
  • Loading branch information
marcantondahmen committed Sep 15, 2024
2 parents 09e8864 + dad2461 commit 6c60739
Show file tree
Hide file tree
Showing 39 changed files with 605 additions and 175 deletions.
33 changes: 18 additions & 15 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,8 +1,24 @@
# Changelog

## [v2.0.0-alpha.5](https://github.com/marcantondahmen/automad/commit/3443ff5f06d1a52661f7f5318ee183248e95a4d3)
## [v2.0.0-alpha.6](https://github.com/marcantondahmen/automad/commit/2f32588222c4829ca3fad8009d9093949f48360d)

Sun, 30 Jun 2024 19:35:04 +0200
Sun, 15 Sep 2024 19:28:10 +0200

### New Features

- **ui**: improve button loading animation ([7fbb813ef](https://github.com/marcantondahmen/automad/commit/7fbb813ef89b19da0b16662764da3fa914a9aa7c))
- add customization fields for CSS and JS code and files ([660691c24](https://github.com/marcantondahmen/automad/commit/660691c2459c33750436a57e50ad7d8237b18e47))
- add support for remote webp images ([0f1885dd9](https://github.com/marcantondahmen/automad/commit/0f1885dd9d1236549d45b90a936e98ed24f39fab))
- move mail config to a separate file ([b48b25329](https://github.com/marcantondahmen/automad/commit/b48b253292e950dcbd74d8bd81f898e9933c31c2))

### Bugfixes

- **ui**: fix visibility of navbar items on medium size screens ([2f3258822](https://github.com/marcantondahmen/automad/commit/2f32588222c4829ca3fad8009d9093949f48360d))
- fix processing of nested in-page editing buttons ([4fa5eb0d3](https://github.com/marcantondahmen/automad/commit/4fa5eb0d3cad40ee39338c975eb427b0c68c6674))

## [v2.0.0-alpha.5](https://github.com/marcantondahmen/automad/commit/09e8864bdc5a62ba735aa0a7f08d358e92aaa735)

Sun, 30 Jun 2024 19:41:20 +0200

### New Features

Expand Down Expand Up @@ -329,16 +345,3 @@ Mon, 9 Aug 2021 23:21:36 +0200
### Bugfixes

- **ui**: fix updating links to images that belong to the page they are used on ([723a6be37](https://github.com/marcantondahmen/automad/commit/723a6be37fb283fdcd42a5a365e6089509a25139))

## [v1.8.2](https://github.com/marcantondahmen/automad/commit/e070a89209c2e90eadb9be4b77580beef6aa75d1)

Sun, 8 Aug 2021 22:25:34 +0200

### New Features

- **samples**: add pagelist example page ([2a033f4da](https://github.com/marcantondahmen/automad/commit/2a033f4dada04e3d2fd7d24f2d2d6b1bfd04986e))
- **samples**: add tags and filters to example pages ([d18f2482b](https://github.com/marcantondahmen/automad/commit/d18f2482b2f258d7b42a6609a439769773ffb7f8))

### Bugfixes

- **themes**: fix thumbnail visibility ([45ed2eee5](https://github.com/marcantondahmen/automad/commit/45ed2eee5f1cf0b81148678820b6a796bf4791e2))
11 changes: 5 additions & 6 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -27,14 +27,12 @@ In case you quickly want to try out Automad without setting up a server first, j
## Installation

Note that this repository only contains source code. Please follow the instructions below in order to install a fully bundled
version of Automad using [Docker](https://docker.com) or [Composer](https://getcomposer.org).
It is also possible to manually [download](https://github.com/automadcms/automad-dist/archive/refs/heads/master.zip)
and [install](#manual-installation) Automad.
Note that this repository only contains source code. Please follow the instructions below in order to install a fully bundled version of Automad using [Docker](https://github.com/automadcms/automad-docker) or [Composer](https://packagist.org/packages/automad/automad).
It is also possible to manually [download](https://github.com/automadcms/automad-dist/archive/refs/heads/master.zip) and [install](#manual-installation) Automad.

### Composer

The fastest way to get Automad up and running is to use Composer.
The fastest way to get Automad up and running is to use [Composer](https://packagist.org/packages/automad/automad).

```bash
composer create-project automad/automad . v2.x-dev
Expand All @@ -44,7 +42,7 @@ Follow this [guide](https://automad.org/version-2#getting-started) to finish the

### Docker

It is also possible to run Automad in a [Docker](https://hub.docker.com/r/automad/automad) container including **Nginx** and **PHP 8.3**.
It is also possible to run Automad in a [Docker](https://github.com/automadcms/automad-docker) container including **Nginx** and **PHP 8.3**.

```bash
docker run -dp 80:80 -v ./app:/app --name mysite automad/automad:v2
Expand Down Expand Up @@ -93,6 +91,7 @@ In case you are interested in contributing, the following types of contribution
- [Publishing packages](https://automad.org/developer-guide/publishing-packages) like themes or extensions to the Automad package [browser](https://packages.automad.org)
- Giving feedback and helping to grow a [community](https://automad.org/discuss)
- Reporting bugs or requesting features at [GitHub](https://github.com/marcantondahmen/automad/issues)
- Reporting [security vulnerabilities](https://github.com/marcantondahmen/automad/security)

However, I do not exclude at this point using parts of Automad's source in future projects under different licenses. In order to avoid having to ask anybody for permission when doing so, I will not accept any contributions to **this** repository. Please understand that pull requests will therefore be ignored.

Expand Down
58 changes: 58 additions & 0 deletions SECURITY.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,58 @@
# Reporting Vulnerabilities

Security should be taken seriously whenever private data and/or the digital distribution of any data is at play. Automad is **no exception** here.

Whenever you encounter a security vulnerability, please feel free to [report it privately](https://github.com/marcantondahmen/automad/security/advisories/new) and provide the following information:

- A brief description of the vulnerability
- A use case for an exploit and a valid attack vector
- All required steps in order to enable an attacker to exploit the vulnerability

> [!IMPORTANT]
> Please note that pull-requests for this repository will be ignored as stated in the README.
## Quality of Reports

Unfortunately false positive vulnerability reports pose a substantial threat to cybersecurity since maintainers of open-source projects keep on drowning in reports. This implies that real threats will not get the attention that will be required to handle them properly and with care.

However, _all reported vulnerabilities are reviewed_ and handled with priority as soon as possible.

Please note that after an initial triage only reports of exploitable vulnerabilities with realistic attack vectors are followed up. Please make sure that you are famliliar with Automad's architecture and fully understand its implications for security as described below.

## Architecture

Automad is a _flat-file_ content management system that doesn't have a database. Content is stored on disk in `.json` files. Pages are only rendered and saved as static `.html` files when content has changed. From a security perspective, this architecture has significant advantages over database driven websites.

### Users and Roles

Automad only knows two types of users — _visitors_ and _admins_. Only admins can create, delete or modify content and change settings. Visitors can only view content.

Only admins have actual user accounts on an Automad installation. They all share the same privileges. Usually there is only a single admin but it is possible to add additional ones via invitations. Visitors have no user account.

### Sessions

On every visit of an Automad site, a session is created on the server for both types of users — visitors as well as admins. On the client, a cookie is created that only contains the session id in order to identify a session. The session id and also the cookie itself don't contain any personal data or any data that can be used in order to identify an actual person.

When a visitor visits the site, also the user's session on the server doesn't contain or store any personal data. In fact it stays empty except a user chooses to persist preferences such as language or color scheme settings and as long as the installation and templates support such features.

Regarding Automad's core functionality, the session is only used to verify whether a user is signed in as an admin and therefore authorized to edit content — this is not only true for the dashboard but for the entire site in order to enable admins to edit content in the in-page editing mode.

After successfully being authenticated, the _username_ and a _csrf token_ will be stored in a user's session. During password reset requests a reset token may be stored temporarily as well. Automad itself will not store any other data than the aforementioned.

### Implications for Security

In order to fully understand possible attack vectors and the severity of reported vulnerabilities, one has to take the architectural concept, the way sessions work in Automad and the limitation of the visitor role into account. Generally, vulnerabilities can be broken down into two categories — _XSS (cross-site-scripting)_ and _CSRF (cross-site-request-forgery)_.

#### XSS

In general, XSS attacks imply that an **unauthorized** user can store malicious code in some kind of data store due to the lack of sanitization of user input. This code is then typically executed in the browser by other users and can therefore be used for stealing user related data such as cookies. Typically forum software or commenting systems are exposed to such attack vectors since anybody can register and post content. In such scenarios a proper sanitization of user input is mandatory.

In Automad this kind of attacks are technically not possible due to the nature of the underlying architecture. The input of unprivileged users such as visitors is never stored or used in any way to permanently alter the system as it would be the case in a commenting system or forum.

As previously described, only admins can create, update or delete content. Please note that this also includes the ability to install templates and modify them. An admin is allowed to add executable JavaScript code to a site. It cannot be stressed enough that this ability itself doesn't pose a threat and also is fundamentally different to the nature of an XSS attack. Admins are by design privileged users that on one hand must understand their responsibility and on the other hand need the necessary freedom to actually keep a site running. This concept is not new and applies to almost every system that is connected to the internet.

Therefore the only type of user that can act as a malicious party are admins. Since visitors have no session data on the server or inside of the cookie, even a hacked admin account can't steal relevant data. This alone renders XSS attacks useless.

#### CSRF

In contrast to XSS attacks, CSRF attacks potentially pose a real threat. Automad has standard measures in place in order to prevent CSRF attacks.
Loading

0 comments on commit 6c60739

Please sign in to comment.