5673 Commits

Author SHA1 Message Date
Thomas Hochstein
382c785725 Merge branch 'thh-rce'
* thh-rce:
  Fix RCE vulnerability on Windows.
  Add missing active content check for renaming.
2020-03-25 16:13:39 +01:00
Thomas Hochstein
fd8dcd3882 Wordwrap overly long words in comments via CSS.
Very long words may overflow the dashboard_widget
boundary on backend start page otherwise.

Signed-off-by: Thomas Hochstein <thh@inter.net>
2020-03-25 15:36:08 +01:00
Thomas Hochstein
e792a8d913 Fix RCE vulnerability on Windows.
Steps to reproduce:

1) Upload a PHP script to the Media Libray,
   naming it "test" (or any other name
   without extension).
2) Rename it to "exploit.php." (trailing dot!)

On Linux, the file will be renamed to
"exploit.php..", which is safe and
cannot be exploited.

On Windows though, the file will be
renemad to "exploit.php" and is then
remotely executable by calling it
from "/uploads/exploit.php".

Thanks to Junyu Zhang <rgdz.eye@gmail.com>
for spotting this!

Signed-off-by: Thomas Hochstein <thh@inter.net>
2020-03-25 15:04:31 +01:00
Thomas Hochstein
21c3b0d83f Add missing active content check for renaming.
After fixing the other ML file renaming bugs,
it was now possible to rename a file without
extension into a file that *does* have an
extension - so we need to check against
active content.

Signed-off-by: Thomas Hochstein <thh@inter.net>
2020-03-25 15:04:25 +01:00
Thomas Hochstein
0b2d6bf931 Really set source of plugins.
Fixes d179f1b1540768eb13e75795457822e6477541cc

Signed-off-by: Thomas Hochstein <thh@inter.net>
2020-03-25 15:03:31 +01:00
Thomas Hochstein
90be45004b Add NEWS entry for ML rename fixes.
Signed-off-by: Thomas Hochstein <thh@inter.net>
2020-03-25 13:16:41 +01:00
Thomas Hochstein
2ccb43a271 Fix for "disappearing" media files after renaming.
The renaming code added a dot '.' to the
filename on disk even if the file hat no
extension. Therefore, the file name on disk was
different from the name in the database,
triggering the database purging code on the
next ML display.

(serendipity_displayImageList() will delete
files from the database that don't exist
any longer on disk.)

This code won't add spurious dots for
empty extensions, keeping disk and
database in sync.

Signed-off-by: Thomas Hochstein <thh@inter.net>
2020-03-25 13:10:46 +01:00
Thomas Hochstein
fd49846aa1 Add different error messages for ML rename.
Signed-off-by: Thomas Hochstein <thh@inter.net>
2020-03-25 13:06:33 +01:00
Thomas Hochstein
837c58cf6d Add missing en/UTF-8 entries to language file.
Belongs to
d179f1b1540768eb13e75795457822e6477541cc

Signed-off-by: Thomas Hochstein <thh@inter.net>
2020-03-25 11:04:06 +01:00
Thomas Hochstein
ce7fa80f4b Add filename to error message (ML renaming).
Belongs to
1c95c173a22e15fa22b21d3466b8e5cc9e626645

Signed-off-by: Thomas Hochstein <thh@inter.net>
2020-03-25 11:04:00 +01:00
Thomas Hochstein
18ab57b76b ML: Really add error message when renaming fails.
Fixes 1c95c173a22e15fa22b21d3466b8e5cc9e626645
2020-03-25 11:03:34 +01:00
Thomas Hochstein
1c95c173a2 ML: Add error message when renaming fails.
Completing 1ed4b9e7eca2a0c371582a454c232c

As we already have an (unused) language
constant for this error, we seem to have
had this kind of check before ...

Signed-off-by: Thomas Hochstein <thh@inter.net>
2020-03-25 00:54:48 +01:00
Thomas Hochstein
b12c098bd0 Add author to details of installed plugins.
Signed-off-by: Thomas Hochstein <thh@inter.net>
2020-03-24 16:12:31 +01:00
Thomas Hochstein
d179f1b154 Add plugin source to list of plugins.
* plugin_api.inc.php:
  - Add static list of bundled plugins.
  - Add function to check if plugin is
    bundled.
* plugins.inc.php:
  - Set source of plugin
    (Spartacus, bundled or local).
* plugins.inc.tpl:
  - Display plugin source.
* Add language constants.

Signed-off-by: Thomas Hochstein <thh@inter.net>
2020-03-24 15:57:48 +01:00
Thomas Hochstein
f576501737 Revert "Save remote plugin source when merging remote / local data."
This reverts commit 8c702769e428f49671f20b6d1e57c210e52222a7.

We can do this better.

Signed-off-by: Thomas Hochstein <thh@inter.net>
2020-03-24 15:36:49 +01:00
Thomas Hochstein
fd6daca381 Display "more info" link to Spartacus even for installed plugins.
Use new capability from 8c702769e428f

Signed-off-by: Thomas Hochstein <thh@inter.net>
2020-03-23 22:36:27 +01:00
Thomas Hochstein
8c702769e4 Save remote plugin source when merging remote / local data.
When installing / updating plugins, plugin data
is fetched from Spartacus first; those plugins
will habe "Spartacus" as "pluginlocation".

Later on, information about installed plugins
is fetched from cache / database, overwriting
the previously fetched data for all installed
plugins. After that, "pluginlocation" is
"local" even for plugins that live on
Spartacus if they have been installed.

So we save "pluginlocation" data to a new
"pluginsource" field before merging /
overwriting so we can detect plugins that
are available on Spartacus.

This data is present in plugins.inc.tpl
and can be used there.

Signed-off-by: Thomas Hochstein <thh@inter.net>
2020-03-23 22:28:43 +01:00
Thomas Hochstein
04a3d34176 "$cachedtype" was set twice.
"$cachedtype" is saved anayway before returning;
no need to set it here.

Signed-off-by: Thomas Hochstein <thh@inter.net>
2020-03-23 20:50:46 +01:00
Thomas Hochstein
a3a48fd4f5 Escape plugin author name in pluginlist.
Don't show HTML from author name field.

Signed-off-by: Thomas Hochstein <thh@inter.net>
2020-03-23 17:49:52 +01:00
onli
8a1ab31a66 Remove utf8mb4_ready requirement from native -> utf8 upgrade 2020-03-23 17:25:04 +01:00
onli
be422b5e83 Add maintenance tasK: native -> utf8, utf8 -> utf8mb4
Note: Native to utf8 will not work if the data in the database table is actually utf8! These are helper functions for during the alpha, to make testing easier, not tasks for the beta/stable
2020-03-23 17:15:56 +01:00
onli
af036ca58d Add warning to upgrade task for utf8mb4 upgrade 2020-03-23 09:57:59 +01:00
onli
a6f9ec1638 fix: don't ugprade only entries, but all our databases 2020-03-23 00:03:20 +01:00
onli
945b73dc34 Use utf8mb4_unicode_ci instead of utf8mb4_general_ci in upgrade 2020-03-22 23:52:01 +01:00
onli
c6800d5fc3 minor: explain serendipity_utf8mb4_ready in doccomment 2020-03-22 23:20:08 +01:00
onli
3ac81b91ca Reworked version and function requirement for utf8mb4 (#394) 2020-03-22 23:13:15 +01:00
onli
fa17e0709c Upgrade task to move utf8 mysql databases to utf8mb4 (#394) 2020-03-22 22:15:23 +01:00
onli
8b27a56209 Raise mysql requirements for utf8mb4 to 5.7/10.0.2
utf8mb4 did not work on a test server with large prefix (=not 3000 byte index limit, only 1000) on Depian 9/mariadb 10.1.44, because the row format was not barracuda (by default?)
2020-03-22 20:44:11 +01:00
onli
b15a453165 Use InnoDB and utf8mb4 on current mysql databases
For new installations only so far
2020-03-22 13:15:32 +01:00
Thomas Hochstein
05fe0a3526 Forgot to bump the release numbers.
Signed-off-by: Thomas Hochstein <thh@inter.net>
2020-03-22 11:36:22 +01:00
Thomas Hochstein
3680a119c3 Release 2.3.3
Signed-off-by: Thomas Hochstein <thh@inter.net>
2020-03-22 09:59:17 +01:00
Thomas Hochstein
d255ff0d2d NEWS: Third time's a charme.
Signed-off-by: Thomas Hochstein <thh@inter.net>
2020-03-21 23:41:44 +01:00
Thomas Hochstein
bbcab1f324 NEWS: And now without typos and missing lines.
Signed-off-by: Thomas Hochstein <thh@inter.net>
2020-03-21 23:25:43 +01:00
Thomas Hochstein
f40cd076c5 NEWS: Move backported entries from 2.4 to 2.3.3.
Signed-off-by: Thomas Hochstein <thh@inter.net>
2020-03-21 23:18:37 +01:00
Thomas Hochstein
cf30889d45 Add documentation for fix in plugin_comments.
Signed-off-by: Thomas Hochstein <thh@inter.net>
2020-03-21 18:03:32 +01:00
Thomas Hochstein
599aeef3b6
Merge pull request #681 from th-h/thh-limit
Set empty limit to "" in serendipity_fetchEntries.
2020-03-21 18:01:57 +01:00
Thomas Hochstein
b718637794 Set empty limit to "" in serendipity_fetchEntries.
If $limit is empty(), no limit is set, so we can
set the LIMIT statement to "" to achieve the same.

But an empty() $limit can be "0", so the
generated SQL statement could end with "0"
instead of the LIMIT statement. We catch this
with forcing an empty() $limit to "".

Fixes #636.
(No matter that this shouldn't even happen.)

Signed-off-by: Thomas Hochstein <thh@inter.net>
2020-03-21 17:59:13 +01:00
Thomas Hochstein
9254609ff4
Merge pull request #680 from th-h/thh-plugin-comments
[plugin_comments] Fix wordwrap at wound boundaries.
2020-03-21 16:10:38 +01:00
Thomas Hochstein
da4985f543 [plugin_comments] Fix wordwrap at wound boundaries.
Add ChangeLog.

Signed-off-by: Thomas Hochstein <thh@inter.net>
2020-03-21 16:08:55 +01:00
Thomas Hochstein
2a58548bd3
Merge pull request #678 from th-h/master
Escape version string in update notifier.
2020-03-20 19:08:46 +01:00
Thomas Hochstein
98944d8b14 Escape version string in update notifier.
Fixes 674.

Signed-off-by: Thomas Hochstein <thh@inter.net>
2020-03-20 19:07:19 +01:00
Thomas Hochstein
bf59bca988
Merge pull request #677 from th-h/master
Prevent renaming ML object into existing file.
2020-03-20 17:55:09 +01:00
Thomas Hochstein
1ed4b9e7ec Prevent renaming ML object into existing file.
When renaming objects in the Media Library,
s9y didn't check if a file with the same
name already exists, resulting in a file
name collision deleting both files from
the database _and_ from disk.

Add a check to avoid that.

An error message would be nice, too, but
that may be added later on.

Tested on s9y-stable test instance.

Signed-off-by: Thomas Hochstein <thh@inter.net>
2020-03-20 17:54:29 +01:00
surrim
ed778d7199 changed parameters order for implode() 2020-03-17 15:48:36 +01:00
Garvin Hicking
b2cebf04ac
Merge pull request #675 from surrim/fix_kill_path
fix serendipity_killPath()
2020-03-17 11:56:58 +01:00
surrim
bd70590359 init 2020-03-16 23:51:17 +01:00
Stephan Brunker
9dd182b24c fix Issue #661 in plugin_recententries 2019-12-30 22:03:06 +01:00
onli
f0e4b54243 Fix trackback deletion from frontend, invalid referrer error
Was missing the token. For context see https://board.s9y.org/viewtopic.php?f=10&t=24633
2019-12-16 14:49:00 +01:00
Lothar Serra Mari
137330fd5b Don't allow requesting an archive page that doesn't exist 2019-12-15 13:17:29 +01:00
Stephan Brunker
756f520d71 functions_routing.php: set action to empty when serving JS
genpage is called but no action given - the default page was generated at every call.
2019-12-15 13:16:28 +01:00