Compare commits

...
This repository has been archived on 2023-03-18. You can view files and clone it, but cannot push or open issues or pull requests.

701 Commits
main ... beta

Author SHA1 Message Date
Blake Erickson
4dd8f6e486 Version bump 2023-03-16 17:54:40 -06:00
Penar Musaraj
c02cbd9645
Version bump 2023-01-25 13:50:36 -05:00
OsamaSayegh
65b863ee54
Version bump 2023-01-11 08:41:04 +03:00
Alan Guo Xiang Tan
21252f9a4d
Version bump 2023-01-05 09:47:19 +08:00
Alan Guo Xiang Tan
54141ba674
SECURITY: Convert send_digest to a post request (#19747)
Co-authored-by: Isaac Janzen <isaac.janzen@discourse.org>
2023-01-05 06:57:35 +08:00
Alan Guo Xiang Tan
ba086ac8b7
SECURITY: use rstrip instead of regex gsub to prevent ReDOS (#19745)
`rstrip` implementation is much more performant than regex

Co-authored-by: Krzysztof Kotlarek <kotlarek.krzysztof@gmail.com>
2023-01-05 06:20:59 +08:00
Alan Guo Xiang Tan
c852911801
SECURITY: Delete email tokens when a user's email is changed or deleted (#19744)
Co-authored-by: OsamaSayegh <asooomaasoooma90@gmail.com>
2023-01-05 06:20:49 +08:00
Alan Guo Xiang Tan
9dee2cf53b
SECURITY: Check the length of raw post body (#19743)
Co-authored-by: Jarek Radosz <jradosz@gmail.com>
2023-01-05 06:20:42 +08:00
Alan Guo Xiang Tan
fa622ebffc
SECURITY: escape quotes in tag description when rendering (#19742)
Co-authored-by: Daniel Waterworth <me@danielwaterworth.com>
2023-01-05 06:20:35 +08:00
Alan Guo Xiang Tan
6db4c3a894
SECURITY: BCC active user emails from group SMTP (#19741)
When sending emails out via group SMTP, if we
are sending them to non-staged users we want
to mask those emails with BCC, just so we don't
expose them to anyone we shouldn't. Staged users
are ones that have likely only interacted with
support via email, and will likely include other
people who were CC'd on the original email to the
group.

Co-authored-by: Martin Brennan <martin@discourse.org>
2023-01-05 06:20:27 +08:00
Alan Guo Xiang Tan
f4e319d230
SECURITY: Don't expose user post counts to users who can't see the topic (#19740)
Co-authored-by: Penar Musaraj <pmusaraj@gmail.com>

Co-authored-by: Daniel Waterworth <me@danielwaterworth.com>
Co-authored-by: Penar Musaraj <pmusaraj@gmail.com>
2023-01-05 06:20:11 +08:00
Alan Guo Xiang Tan
63758c2771
SECURITY: Sanitize PendingPost titles before rendering to prevent XSS (#19739)
Co-authored-by: Daniel Waterworth <me@danielwaterworth.com>
2023-01-05 06:20:03 +08:00
Alan Guo Xiang Tan
93b7ad2b14
Version bump 2023-01-03 14:30:56 +08:00
Daniel Waterworth
8c072977f5 Version bump 2022-11-29 11:04:57 -06:00
Martin Brennan
d93e5a84d1
Version bump 2022-11-28 11:00:16 +10:00
Martin Brennan
4dc89cb0cc
Version bump 2022-11-14 13:09:57 +10:00
Bianca Nenciu
34da679752
SECURITY: Correctly render link title in draft preview (#18957)
The additional unescaping could cause link titles to be rendered
incorrectly.
2022-11-09 15:54:53 +02:00
David Taylor
ce44c05e83
Version bump 2022-11-01 17:00:58 +00:00
Alan Guo Xiang Tan
adf5e1ca97
SECURITY: Restrict display of topic titles associated with user badges (#18768) (#18769)
Before this commit, we did not have guardian checks in place to determine if a
topic's title associated with a user badge should be displayed or not.
This means that the topic title of topics with restricted access
could be leaked to anon and users without access if certain conditions
are met. While we will not specify the conditions required, we have internally
assessed that the odds of meeting such conditions are low.

With this commit, we will now apply a guardian check to ensure that the
current user is able to see a topic before the topic's title is included
in the serialized object of a `UserBadge`.
2022-10-27 11:47:53 +08:00
Alan Guo Xiang Tan
ebc498945b
DEV: Introduce TopicGuardian#can_see_topic_ids method (#18692) (#18766)
Before this commit, there was no way for us to efficiently check an
array of topics for which a user can see. Therefore, this commit
introduces the `TopicGuardian#can_see_topic_ids` method which accepts an
array of `Topic#id`s and filters out the ids which the user is not
allowed to see. The `TopicGuardian#can_see_topic_ids` method is meant to
maintain feature parity with `TopicGuardian#can_see_topic?` at all
times so a consistency check has been added in our tests to ensure that
`TopicGuardian#can_see_topic_ids` returns the same result as
`TopicGuardian#can_see_topic?`. In the near future, the plan is for us
to switch to `TopicGuardian#can_see_topic_ids` completely but I'm not
doing that in this commit as we have to be careful with the performance
impact of such a change.

This method is currently not being used in the current commit but will
be relied on in a subsequent commit.
2022-10-27 07:46:38 +08:00
Alan Guo Xiang Tan
b76828df7e
DEV: Remove harded id when fabricating in tests (#18729) (#18731)
Hardcoding ids always lead to sadness for our test suite
2022-10-25 06:31:05 +08:00
Alan Guo Xiang Tan
17f700475c
DEV: Fabricate instead of just building topic, post and user in tests (#18698) (#18716)
Building does not persist the object in the database which is
unrealistic since we're mostly dealing with persisted objects in
production.

In theory, this will result our test suite taking longer to run since we
now have to write to the database. However, I don't expect the increase
to be significant and it is actually no different than us adding new
tests which fabricates more objects.
2022-10-24 07:28:06 +08:00
Osama Sayegh
ca52e9a019
FIX: Workaround a bug in the R2 gem to produce valid RTL CSS (#18446)
See the comment in the changed file for details. Meta report: https://meta.discourse.org/t/main-css-and-mobile-style-not-working-after-update-2-9-0-beta10/240553?u=osama.
2022-10-02 23:03:22 +03:00
Jarek Radosz
d4adf6fa66
Version bump
# Conflicts:
#	app/assets/javascripts/discourse/app/widgets/post-cooked.js
#	db/migrate/20220920044310_enforce_user_profile_max_limits.rb
#	spec/requests/admin/themes_controller_spec.rb
2022-09-29 20:41:00 +02:00
Jarek Radosz
f224eb8601
SECURITY: Prevent arbitrary file write when decompressing files (beta) (#18422)
* SECURITY: Prevent arbitrary file write when decompressing files
* FIX: Allow decompressing files into symlinked directories

Co-authored-by: OsamaSayegh <asooomaasoooma90@gmail.com>
Co-authored-by: Gerhard Schlager <gerhard.schlager@discourse.org>
2022-09-29 20:14:47 +02:00
Jarek Radosz
8f62bc97ce
SECURITY: moderator shouldn't be able to import a theme via API (beta) (#18419)
* SECURITY: moderator shouldn't be able to import a theme via API.
* DEV: apply `AdminConstraint` for all the "themes" routes.

Co-authored-by: Vinoth Kannan <svkn.87@gmail.com>
2022-09-29 20:13:23 +02:00
Jarek Radosz
25269bcc73
SECURITY: Handle incomplete quote bbcode (#18312) 2022-09-21 14:03:01 +02:00
Martin Brennan
47a5aaabfb
SECURITY: Limit user profile field length (#18302) (#18303)
Adds limits to location and website fields at model and DB level
to match the bio_raw field limits. A limit cannot be added at the
DB level for bio_raw because it is a postgres text field.

Co-authored-by: Alan Guo Xiang Tan <gxtan1990@gmail.com>
2022-09-21 13:30:51 +10:00
Loïc Guitaut
6454395864
Version bump 2022-08-10 14:59:56 +02:00
Krzysztof Kotlarek
224d61e8c5 SECURITY: Limit email invitations to topic 2022-08-10 11:43:30 +02:00
romanrizzi
235f6197d0
Version bump 2022-07-27 17:13:41 -03:00
David Taylor
3ab619994f
FIX: Allow Symbol objects to be deserialized in PostRevision (beta) (#17511)
Followup to ee07f6da7d
2022-07-15 13:15:06 +01:00
David Taylor
cd5b2079bd
FIX: Allow Time objects to be deserialized in PostRevision (beta) (#17503)
Followup to ee07f6da7d
2022-07-15 00:17:27 +01:00
David Taylor
9b1a32455a
Version bump 2022-07-13 12:43:40 +01:00
David Taylor
a1d6cf99c2
SECURITY: Validate email constraints when trying to redeem an invite (beta) (#17174)
In certain situations, a logged in user can redeem an invite with an email that
either doesn't match the invite's email or does not adhere to the email domain
restriction of an invite link. The impact of this flaw is aggrevated
when the invite has been configured to add the user that accepts the
invite into restricted groups.

Co-authored-by: Alan Guo Xiang Tan <gxtan1990@gmail.com>
2022-07-06 10:45:29 +01:00
Natalie Tay
d1c34cfca7
Merge pull request #17285 from discourse/updated-beta
Updated beta
2022-06-30 18:10:31 +08:00
OsamaSayegh
f97b6a7dde
Version bump 2022-06-30 12:45:07 +03:00
Blake Erickson
925da123d9
Merge pull request #17079 from discourse/updated-beta
Updated beta
2022-06-13 16:06:22 -06:00
Blake Erickson
f99cbdce33 Version bump 2022-06-13 15:28:33 -06:00
Alan Guo Xiang Tan
16778b8c92
FIX: Approves user when redeeming an invite for invites only sites (#16986)
When a site has `SiteSetting.invite_only` enabled, we create a
`ReviewableUser`record when activating a user if the user is not
approved. Therefore, we need to approve the user when redeeming an
invite.

There are some uncertainties surrounding why a `ReviewableRecord` is
created for a user in an invites only site but this commit does not seek
to address that.

Follow-up to 7c4e2d33fa
2022-06-03 14:51:08 +08:00
Gerhard Schlager
75f274d967
SECURITY: Remove auto approval when redeeming an invite (#16975)
This security fix affects sites which have `SiteSetting.must_approve_users`
enabled. There are intentional and unintentional cases where invited
users can be auto approved and are deemed to have skipped the staff approval process.
Instead of trying to reason about when auto-approval should happen, we have decided that
enabling the `must_approve_users` setting going forward will just mean that all new users
must be explicitly approved by a staff user in the review queue. The only case where users are auto
approved is when the `auto_approve_email_domains` site setting is used.

Co-authored-by: Alan Guo Xiang Tan <gxtan1990@gmail.com>
2022-06-02 16:10:58 +02:00
David Taylor
30163f0340
FIX: Ensure values are escaped in select-kit dropdowns (#16587)
The values in Discourse dropdown menus only come from admin-defined strings, not unsanitised end-user input, so this lack of escaping was not exploitable.
2022-04-28 16:44:17 +01:00
Penar Musaraj
c3a2561121
Version bump 2022-04-14 10:12:57 -04:00
Alan Guo Xiang Tan
0f65b53f3d SECURITY: Update Nokogiri to 1.13.4.
Nokogiri 1.13.4 updates zlib to 1.2.12 to address CVE-2018-25032.

https://github.com/sparklemotion/nokogiri/security/advisories/GHSA-v6gp-9mmm-c6p5
https://nvd.nist.gov/vuln/detail/CVE-2018-25032
2022-04-12 14:38:46 +08:00
Alan Guo Xiang Tan
591db6e20b DEV: Add pretender endpoint for category visible groups.
This was causing our build to become flaky.
2022-04-11 11:43:39 +08:00
Alan Guo Xiang Tan
8f6d54a920 SECURITY: Category group permissions leaked to normal users.
After this commit, category group permissions can only be seen by users
that are allowed to manage a category. In the past, we inadvertently
included a category's group permissions settings in `CategoriesController#show`
and `CategoriesController#find_by_slug` endpoints for normal users when
those settings are only a concern to users that can manage a category.
2022-04-08 11:04:40 +02:00
Bianca Nenciu
ae28bd4a54 FIX: Serialize permissions for everyone group
The permissions for the 'everyone' group were not serialized because
the list of groups a user can view did not include it. This bug was
introduced in commit dfaf9831f7.
2022-04-08 11:04:40 +02:00
Martin Brennan
64aac6092d DEV: Fix failing share topic tests (#16309)
Since 3fd7b31a2a some tests
were failing with this error:

> Error: Unhandled request in test environment: /c/feature/find_by_slug.json
> (GET) at http://localhost:7357/assets/test-helpers.js

This commit fixes the issue by adding the missing pretender. Also
noticed while fixing this that the parameter for the translation
was incorrect -- it was `group` instead of `groupNames`, so that
is fixed here too, along with moving the onShow functions into
@afterRender decorated private functions. There is no need for the
appevent listeners.
2022-04-08 11:04:40 +02:00
Bianca Nenciu
21b8c7e120 FIX: Show restricted groups warning when necessary (#16236)
It was displayed for the "everyone" group too, but that was not
necessary.
2022-04-08 11:04:40 +02:00
Alan Guo Xiang Tan
ed02cfbabb DEV: Restore order assertion in category serializer tests. (#16344)
Our group fabrication creates groups with name "my_group_#{n}" where n
is the sequence number of the group being created. However, this can
cause the test to be flaky if and when a group with name `my_group_10`
is created as it will be ordered before
`my_group_9`. This commits makes the group names determinstic to
eliminate any flakiness.

This reverts commit 558bc6b746.
2022-04-01 09:13:12 +08:00
David Taylor
0b509439f6 DEV: Fix flaky specs (#16340)
`group_permissions` are not serialized in a consistent order

Follow-up to dfaf9831f7
2022-04-01 09:13:12 +08:00
Alan Guo Xiang Tan
81ab6569b5
SECURITY: Avoid leaking private group name when viewing category. (#16338)
In certain instances when viewing a category, the name of a group with
restricted visilbity may be revealed to users which do not have the
required permission.
2022-03-31 15:05:12 +08:00
Martin Brennan
80a40ebaa6
SECURITY: Hide private categories in user activity export (#16273) (#16275)
In some of the user's own activity export data,
we sometimes showed a secure category's name or
exposed the existence of a secure category.
2022-03-24 15:56:29 +10:00
Neil Lalonde
b1b643c794
Version bump 2022-03-22 14:49:11 -04:00
Alan Guo Xiang Tan
2c4523e19b
DEV: Run tests on push to beta and stable branch too. (#16221) 2022-03-18 12:08:23 +08:00
Alan Guo Xiang Tan
94b0d4f3cf
DEV: Pull compatible version for plugins in Github test workflow. (#16220)
We have 3 branches which we care about, `main`, `beta` and `stable`.
However, each of this branch has different compatibilties with plugins
and we want to respect that.
2022-03-18 11:28:05 +08:00
Krzysztof Kotlarek
1a46b092fc Version bump 2022-02-14 15:52:34 +11:00
Krzysztof Kotlarek
d81e9b0430 Version bump to v2.9.0.beta2 2022-02-14 15:52:01 +11:00
Krzysztof Kotlarek
3f70e47c90 SECURITY: Onebox response timeout and size limit (#15927)
Validation to ensure that Onebox request is no longer than 10 seconds and response size is not bigger than 1 MB
2022-02-14 12:12:45 +11:00
Neil Lalonde
c7ac0b74a7
Version bump 2022-01-27 10:55:08 -05:00
Neil Lalonde
42c71789f9
Version bump 2022-01-13 10:37:38 -05:00
David Taylor
2fcc8ae64a
FIX: Bypass service worker on the SSO path (#15558) (#15561)
This is a workaround a behavior change in Chromium v97.
The following text was sent to the blink-dev mailing list:

> This change broke a SingleSignOn login on the FOSS software Discourse. We have a flow like:
>
> 1. User visits forum.siteA.com, click login
> 2. Gets redirected to idp.siteB.com
> 3. Fills login details
> 4. Gets redirected to forum.siteA.com/session/sso_login?parameters
> 5. Gets redirected to forum.siteA.com/homepage
>
> On step 4, the response includes a `set-cookie` header, with proper `HttpOnly; SameSite=Lax; Secure `and set. But if there is an active service worker, the login will fail as that cookie will be rejected by Chromium due to SameSite rules now.
>
> t=2971 [st=258]        COOKIE_INCLUSION_STATUS
>                        --> domain = "forum.siteA.com"
>                        --> name = "_t"
>                        --> operation = "store"
>                        --> path = "/"
>                        --> status = "EXCLUDE_SAMESITE_LAX, DO_NOT_WARN"
>
> The service worker is a vanilla WorkboxJS service worker that intercepts all GETs with the "Network First" strategy.
>
> Disabling the service worker or using Firefox results in a successful login. There is no warning in either DevTools network tab nor the console that the cookie was rejected.
>
> Chrome 96: login works
> Chrome 97: login does not work
> Chrome 98: login does not work
>
> Is this expected behavior? Even if the request `GET forum.siteA.com` was initiated because of a redirect from a different domain, is it expected that Chrome will silently drop same site cookies from forum.siteA.com?

Co-authored-by: Rafael dos Santos Silva <xfalcox@gmail.com>
2022-01-13 00:08:42 +00:00
Dan Ungureanu
6de36e75af
SECURITY: Do not sign in unapproved users (#15552) 2022-01-12 22:25:37 +02:00
Alan Guo Xiang Tan
840648c316 SECURITY: Advanced group search did not respect visiblity of groups. 2022-01-10 13:49:32 +08:00
Bianca Nenciu
2b9d3c18e1
SECURITY: Hide user's bio if profile is restricted (#15448)
The bio was sometimes visible in the meta tags even though it it should
not have been.
2022-01-07 14:18:20 +02:00
Arpit Jalan
ca5feb4920 SECURITY: only show user suggestions with regular post (#15436) 2022-01-03 13:53:06 +05:30
Jarek Radosz
54ca0dbd38
FIX: SiteSetting.title was being polluted in StaticController (#15385)
Regressed in #15324
2021-12-21 19:43:57 -05:00
Neil Lalonde
9f41fe60df
Version bump 2021-12-21 13:25:21 -05:00
Alan Guo Xiang Tan
74746c8bc3 SECURITY: Disable MessageBus::Diagnostics.
MessageBus::Diagnostics allows anyone with access to carry out certain
operations that may result in a denial of service. The impact of this is
greater on multisiite clusters.
2021-12-17 14:44:54 +08:00
David Taylor
e4759ae9f2
DEV: Fix ember CLI bootstrap logic (#15161)
When 1fa7a87f was rebased onto `main`, it didn't take into account the recent changes in c0781d7d. This commit updates the logic to work properly.
2021-12-01 18:42:15 +00:00
Neil Lalonde
ca4ac732b8
Version bump 2021-12-01 11:43:14 -05:00
Natalie Tay
1b9a807cbb
SECURITY: Only show tags to users with permission (#15148) 2021-12-01 10:32:03 +08:00
Martin Brennan
8fba9be113
SECURITY: Strip unrendered unicode bidirectional chars in code blocks (#15032)
When rendering the markdown code blocks we replace the
offending characters in the output string with spans highlighting a textual
representation of the character, along with a title attribute with
information about why the character was highlighted.

The list of characters stripped by this fix, which are the bidirectional
characters considered relevant, are:

U+202A
U+202B
U+202C
U+202D
U+202E
U+2066
U+2067
U+2068
U+2069
2021-11-22 10:44:16 +10:00
Neil Lalonde
fcbfd7eccd
Version bump 2021-11-15 11:15:15 -05:00
Neil Lalonde
414d39f883
Version bump 2021-10-20 17:32:28 -04:00
Bianca Nenciu
5e82006fb3 SECURITY: Escape watched word in error message (#14434) 2021-09-24 13:37:23 +03:00
Neil Lalonde
692d3fb4de
Version bump 2021-09-02 14:27:00 -04:00
Sam Saffron
1d63e23984
Revert "Build(deps): Bump oj from 3.13.2 to 3.13.3 (#14202)"
This reverts commit 1a65f0bfbb.

New Oj gem has issues see: https://github.com/ohler55/oj/issues/699
2021-09-02 16:10:37 +10:00
Neil Lalonde
137d57c5dd
Merge diffs from main 2021-09-01 13:32:16 -04:00
Neil Lalonde
29df250942
Version bump 2021-09-01 13:30:53 -04:00
Blake Erickson
764df93203
SECURITY: escape cat name (#14156) 2021-08-25 18:14:20 -06:00
Alan Guo Xiang Tan
c68f2fe461
SECURITY: Destroy EmailToken when EmailChangeRequest is destroyed (#13950) (#14024)
Co-authored-by: jbrw <jamie@goatforce5.org>
2021-08-12 15:12:43 +10:00
Alan Guo Xiang Tan
37c44e47fc SECURITY: User's read state for topic is leaked to unauthorized clients.
A user's read state for a topic such as the last read post number and the notification level is exposed.
2021-08-12 12:44:45 +08:00
Bianca Nenciu
9aa59fe215 SECURITY: Sanitize d-popover attributes (#13958) 2021-08-05 16:40:20 +03:00
Alan Guo Xiang Tan
c8d76796f5
DEV: Make rubocop happy. 2021-07-23 16:38:26 +08:00
Alan Guo Xiang Tan
99c2b75dd4
SECURITY: Don't leak user of previous whisper post when deleting a topic.
A topic's last poster can be incorrectly set to a user of a whisper post
if the whisper post is before the last post and the last post is
deleted.
2021-07-23 16:38:24 +08:00
Alan Guo Xiang Tan
a51f0d53e5
SECURITY: Do not reveal post whisperer in personal messages.
Prior to this fix, post whisperer in personal messages are revealed in
the topic's participants list even though non-staff users are unable to
see the whisper.
2021-07-23 16:38:21 +08:00
Neil Lalonde
93e91879c7
Version bump 2021-07-22 12:27:27 -04:00
Martin Brennan
8bec292ec4 SECURITY: Validate period param for top topic routes (#13818)
Fixes a possible SQL injection vector
2021-07-22 10:06:28 +02:00
Neil Lalonde
a615eecd36
Version bump 2021-07-15 14:56:25 -04:00
Bianca Nenciu
ffec25da9c FIX: TL4 users cannot delete others posts (#13554) 2021-07-06 12:05:29 +03:00
Arpit Jalan
70e37e84e4 SECURITY: Onebox canonical links bypassing FinalDestination checks 2021-07-01 20:13:27 +05:30
Joffrey JAFFEUX
ce1abdf273 SECURITY: ensures timeouts are correctly used on connect (#13455) 2021-06-22 12:27:26 +02:00
Neil Lalonde
d0e09c512c
Version bump 2021-06-08 11:30:09 -04:00
Régis Hanol
9ee80ebb7f SECURITY: XSS in bookmarks list (#13311)
We should use `fancy_title` instead of `title` when displaying a topic title to ensure only the allowed html is not escaped.
2021-06-07 16:52:10 +02:00
Neil Lalonde
3fbdfc5f8d
Version bump 2021-05-18 16:40:16 -04:00
Blake Erickson
bc1bce1ec8
Revert "DEV: Drop old IE11 intersection-observer references" (#13017) (#13018)
This reverts commit 7360a0f70f.

iOS still wants this sometimes. Probably best to revert for now and we can
always remove this again later.

See: https://meta.discourse.org/t/189799/11?u=blake
2021-05-10 17:53:55 -06:00
Neil Lalonde
1f72e631a2
Version bump 2021-05-10 11:31:34 -04:00
David Taylor
4d0f6f07c0
SECURITY: Bump Rails to 6.1.3.2 (#12963) (#12964)
Includes fixes for

- CVE-2021-22902
- CVE-2021-22903
- CVE-2021-22904
- CVE-2021-22885

https://github.com/rails/rails/blob/v6.1.3.2/actionpack/CHANGELOG.md
2021-05-06 13:26:26 +01:00
Neil Lalonde
992587f836
Version bump 2021-04-29 13:40:46 -04:00
Bianca Nenciu
8bc71df896
FIX: Gracefully handle inline images in emails (#12855) 2021-04-29 10:38:36 +03:00
Bianca Nenciu
dcab937030
FIX: Replace use of regular expression (#12838)
It used a regular expression to check if message IDs were in RFC format.
2021-04-27 17:16:27 +03:00
Neil Lalonde
fad6e645fb
Version bump 2021-04-14 10:57:45 -04:00
Sam
9fb0d287bf
FIX: automatically timeout long running image magick commands (#12670)
Previously certain images may lead to convert / identify to run for unreasonable
amounts of time

This adds a maximum amount of time these commands can run prior to forcing
them to stop
2021-04-12 13:48:54 +03:00
Neil Lalonde
75c4ba2d0f
Version bump 2021-04-07 15:12:02 -04:00
Martin Brennan
3c722be96f
SECURITY: Fix is_private_ip for RateLimiter to cover all cases (#12464)
The regular expression to detect private IP addresses did not always detect them successfully.
Changed to use ruby's in-built IPAddr.new(ip_address).private? method instead
which does the same thing but covers all cases.
2021-03-22 14:03:15 +10:00
Neil Lalonde
47593053d0
Version bump 2021-03-10 13:47:02 -05:00
Arpit Jalan
efb4a55b9b FIX: do not send rejection emails to auto-deleted reviewable users (#12160)
FIX: add context when user is deleted via auto handle queued reviewable
FIX: do not delete email_log when a user is deleted
2021-02-22 22:07:37 +05:30
Neil Lalonde
33df4233c9
Version bump 2021-02-18 14:24:10 -05:00
David Taylor
db38b379fe
SECURITY: Attach DiscourseConnect (SSO) nonce to current session (#12124) 2021-02-18 10:47:00 +00:00
Arpit Jalan
cb42d24c96 FIX: process new invites when existing users are already group members (#11971)
If a list of email addresses is pasted into a group’s Add Members form
that has one or more email addresses of users who already belong to the
group and all other email addresses are for users who do not yet exist
on the forum then no invites were being sent. This commit ensures that
we send invites to new users.
2021-02-05 09:59:48 +05:30
Martin Brennan
a692f93571
DEV: Move logic for rate limiting user second factor to one place (#11941)
This moves all the rate limiting for user second factor (based on `params[:second_factor_token]` existing) to the one place, which rate limits by IP and also by username if a user is found.
2021-02-04 09:05:14 +10:00
Robin Ward
df49194953
SECURITY: Rate limit MFA by login if possible (#11938)
This ensures we rate limit on logins where possible, we also normalize logins for the rate limiters centrally.
2021-02-03 10:31:44 +11:00
Sam Saffron
083988cb44
msgpack 1.4.1 was yanked - use 1.4.2 2021-02-03 10:31:17 +11:00
Neil Lalonde
f83eaad496
Version bump 2021-01-28 12:55:34 -05:00
Neil Lalonde
47e7a10d6e
Version bump 2021-01-21 14:54:20 -05:00
Arpit Jalan
b94be27834 Bump onebox gem to 2.2.1
- do not show title only oneboxes
- allow oneboxes with title and image
2020-12-24 11:07:41 +05:30
Neil Lalonde
234b5780c3
Version bump 2020-11-30 17:47:48 -05:00
Sam
7e766d76d0
FIX: correct cdn path (#11324)
This was a typo in a118ec13
2020-11-24 14:35:01 +11:00
Sam
6eb9d73d80
FIX: stop including GlobalPath in default context (#11323)
We do not want these method names to clash, instead encapsulate the helpers
so we do not add methods to Kernel

Correct a but exposed by Ruby 2.7
2020-11-24 14:34:57 +11:00
Neil Lalonde
ccc2c940bf
Version bump 2020-11-19 13:59:15 -05:00
Dan Ungureanu
7db4d0ac84
FIX: Add dummy themes:update task (#11261) 2020-11-17 11:45:47 +02:00
David Taylor
837ef6f2e5
FIX: Remove 4 month limit on IgnoredUser records (#11105)
b8c676e7 added the 'forever' option to the UI, and this is correctly stored in the database. However, we had a hard-coded limit of 4 months in the cleanup job. This commit removes the limit, so ignores can last forever.
2020-11-03 12:28:18 +00:00
Neil Lalonde
bce103b199
Version bump 2020-10-30 12:24:02 -04:00
Martin Brennan
bd8f0d0d94
FIX: Prevent slow bookmark first post reminder at query for topic (#11024)
On forums with a large amount of posts when a user had a bookmark in the topic, PostgreSQL was using an inefficient query plan to fetch the first post of the topic. When running this ActiveRecord query:

```
topic.posts.with_deleted.where(post_number: 1).first
```

The following query plan was produced:

```
 Limit  (cost=0.43..583.49 rows=1 width=891) (actual time=3850.515..3850.515 rows=1 loops=1)
   ->  Index Scan using posts_pkey on posts  (cost=0.43..391231.51 rows=671 width=891) (actual time=3850.514..3850.514 
rows=1 loops=1)
         Filter: ((topic_id = 160918) AND (post_number = 1))
         Rows Removed by Filter: 2274520
 Planning time: 0.200 ms
 Execution time: 3850.559 ms
(6 rows)
```

The issue here is the combination of ORDER BY and LIMIT causing the ineficcient Index Scan using posts_pkey on posts to be used. When we correct the AR call to this:

```
topic.posts.with_deleted.find_by(post_number: 1)
```

We end up with a query that still has a LIMIT but no ORDER BY, which in turn creates a much more efficient query plan:

```
Limit  (cost=0.43..1.44 rows=1 width=891) (actual time=0.033..0.034 rows=1 loops=1)
   ->  Index Scan using index_posts_on_topic_id_and_post_number on posts  (cost=0.43..678.82 rows=671 width=891) (actua
l time=0.033..0.033 rows=1 loops=1)
         Index Cond: ((topic_id = 160918) AND (post_number = 1))
 Planning time: 0.167 ms
 Execution time: 0.072 ms
(5 rows)
```

This query plan uses the correct index, `Index Scan using index_posts_on_topic_id_and_post_number on posts`. Note that this is only a problem on forums with a larger amount of posts; tiny forums would not notice the difference. On large forums a query for a topic that takes 1s without a bookmark can take 8-30 seconds, and even end up with 502 errors from nginx.
2020-10-27 16:06:59 +10:00
Neil Lalonde
4207152390
Merge diffs from master 2020-10-15 14:21:34 -04:00
Neil Lalonde
6777a465ea
Version bump 2020-10-15 14:19:08 -04:00
Martin Brennan
810d6febb5
FIX: Confirm new email not sent for staff if email disabled with "non-staff" option (#10794)
See https://meta.discourse.org/t/email-address-change-confirmation-email-not-sent-but-every-other-notification-emails-are/165358

In short: with disable emails set to non-staff, email address change confirmation emails (those sent to the new address) are not sent for staff or admin members.

This was happening because we were looking up the staff user with the to_address of the email, but the to address was the new email address because we are sending a confirm email change email, and thus the user could not be found. We didn't need to do this anyway because we are passing the user into the Email::Sender class anyway.
2020-10-08 14:29:25 +10:00
Roman Rizzi
f1f6bced01
SECURITY: Ensure users can see the topic before setting a topic timer. (#10841) 2020-10-06 17:10:09 -03:00
Robin Ward
59dee76b34 DEV: Add support for api-initializers to reduce boilerplate.
You can now create a file in your plugin/theme in the `api-initializers`
directory which has a simpler template than previous initializers.
Example:

```
// api-initializers/my-plugin.js
import { apiInitializer } from "discourse/lib/api";

export default apiInitializer("0.8", api => {
  console.log("hello world from api initializer!");
});
```
2020-09-30 16:07:15 -04:00
Neil Lalonde
ccfdb7eb39
Merge diffs from master 2020-09-24 16:07:12 -04:00
Neil Lalonde
1de85c0b1d
Version bump 2020-09-24 16:06:20 -04:00
Krzysztof Kotlarek
1d5dfb4563 SECURITY: return error on oversized images 2020-09-14 11:30:38 +10:00
Guo Xiang Tan
8f064ae97b DEV: Correct use of sanitize_sql_array in TopicQuery. 2020-09-08 10:30:46 +02:00
Guo Xiang Tan
4025bcedaf DEV: Address review comments for 5ed84d9885. 2020-09-08 10:30:40 +02:00
Guo Xiang Tan
954da93bf8 SECURITY: Remove indication that a group exists if user can't see it.
Minor security fix but we should not leak any hints that a group exists
even if a user does not have access to the group.
2020-09-08 10:30:35 +02:00
Guo Xiang Tan
e7d94b8d6f SECURITY: Don't allow moderators to list PMs of all groups.
* Also return 404 when a user is trying to list PMs of a group that
cannot be accessed by the user.
2020-09-08 10:30:29 +02:00
Gerhard Schlager
2350947f65
FIX: Backups should use relative paths for local uploads
This also ensures that restoring a backup works when it was created with the wrong upload paths in the time between ab4c0a4970 (shortly after v2.6.0.beta1) and this fix.
2020-08-21 15:32:11 +02:00
Neil Lalonde
07d398e2e7
Merge diffs from master 2020-08-20 16:37:57 -04:00
Neil Lalonde
d5b9540449
Version bump 2020-08-20 16:36:52 -04:00
Jeff Wong
36b72e8141 FIX: allow plugin pinning to fetch missing commits
Add update for fetching git commits if they do not exist, eg with
clone --depth 1 - only can fetch via git fetch --depth 1 {remote} {ref}
the ref needs to be a full, non-ambiguous reference.
2020-08-13 11:16:18 -07:00
Guo Xiang Tan
4931c8e913
Update rails_failover to 0.5.5. 2020-08-04 11:15:08 +08:00
Guo Xiang Tan
1ec32f8cd1
FIX: Exclude DELETE methods from invalid request with payload.
Follow-up 105d560177

Our client side code is sending params as part of the request payload so
that is going to be tricky to fix.
2020-08-03 17:06:04 +08:00
Guo Xiang Tan
ae5ca5756d
SECURITY: 413 for GET, HEAD or DELETE requests with payload. 2020-08-03 15:00:05 +08:00
Guo Xiang Tan
ed910b0227
DEV: Refactor anonymouse cache spec.
Mainly to properly categorize `Middleware::AnonymousCache` vs `Middleware::AnonymousCache::Helper` specs.
2020-08-03 14:59:28 +08:00
Sam Saffron
6eaf3c6b39 DEV: upgrade mini_racer and libv8
This pushes v8 from Chrome 73 (March 2019) -> 84 (July 14 2020)

Not expecting any user facing changes, but it is super nice to be on latest
v8 :confetti:
2020-07-23 14:23:42 +05:30
Jeff Wong
e2049175d6 Support plugin and Theme compatibility version manifests (#9995)
Adds a new rake task `plugin:checkout_compatible_all` and
`plugin:checkout_compatible[plugin-name]` that check out compatible plugin
versions.

Supports a .discourse-compatibility file in the root of plugins and themes that
list out a plugin's compatibility with certain discourse versions:

eg: .discourse-compatibility
```
2.5.0.beta6: some-git-hash
2.4.4.beta4: some-git-tag
2.2.0: git-reference
```

This ensures older Discourse installs are able to find and install older
versions of plugins without intervention, through the manifest only.

It iterates through the versions in descending order. If the current Discourse
version matches an item in the manifest, it checks out the listed plugin target.
If the Discourse version is greater than an item in the manifest, it checks out
the next highest version listed in the manifest.

If no versions match, it makes no change.
2020-07-16 18:03:28 -07:00
Martin Brennan
62498f3653
SECURITY: Add content-disposition: attachment for SVG uploads
* strip out the href and xlink:href attributes from use element that
  are _not_ anchors in svgs which can be used for XSS
* adding the content-disposition: attachment ensures that
  uploaded SVGs cannot be opened and executed using the XSS exploit.
  svgs embedded using an img tag do not suffer from the same exploit
2020-07-09 13:45:25 +10:00
Luke Clancy
4c6a4302df
Update category_featured_topic.rb (#10121)
In my experience, does not catch the PG::UniqueViolation as ActiveRecord::RecordNotUnique is on top of it, so you should have both. I ran into this problem when creating large amounts of topics at the same time (I usually find this downstream in the source code when I pull it and change it there after each git clone)
2020-06-25 10:21:40 -04:00
Neil Lalonde
f407c88327
Version bump 2020-06-24 14:00:44 -04:00
Neil Lalonde
6893e72593
Version bump 2020-06-10 13:38:40 -04:00
Neil Lalonde
e5a7937177
Version bump 2020-06-01 14:14:38 -04:00
Jeff Wong
04347f1b2d SECURITY: make find topic by slug adhere to SiteSetting.detailed_404 (#9898) 2020-05-28 14:20:12 +05:30
Blake Erickson
03be23c73a SECURITY: Use FinalDestination for topic embeds 2020-05-28 14:16:13 +05:30
Neil Lalonde
f9335244f8
Version bump 2020-05-26 11:13:30 -04:00
Robin Ward
79b97a18d2 SECURITY: ERB execution in custom Email Style 2020-05-21 14:48:48 -04:00
Joffrey JAFFEUX
56e2aeee77 FIX: reverts to use an observer to support loading more notifications (#9628)
Apparently, didReceiveAttrs is not called when loading more notifications, this would require a more heavy refactoring.
2020-05-04 18:53:10 +02:00
Neil Lalonde
d46b486633
Version bump 2020-05-04 11:45:26 -04:00
Robin Ward
eeaa3816e1 SECURITY: Update onebox to add rel="noopener" 2020-04-29 10:57:31 -04:00
Joffrey JAFFEUX
9bbce5730d FIX: fails gracefully if :scope is not handled by a browser (#9529) 2020-04-23 16:52:22 +02:00
Joffrey JAFFEUX
160958715e FIX: prevents constant composer reloading (#9528) 2020-04-23 08:31:09 +02:00
Neil Lalonde
9e08d9da26
Merge diffs from master 2020-04-22 10:53:01 -04:00
Neil Lalonde
23fa6ff325
Version bump 2020-04-22 10:51:48 -04:00
Bianca Nenciu
a1c481e65a SECURITY: Ensure user can see group and group members 2020-03-24 12:22:37 +02:00
David Taylor
5011c9cd2d
SECURITY: Respect topic permissions when loading draft metadata
Co-authored-by: Sam Saffron <sam.saffron@gmail.com>
2020-03-23 11:54:03 +00:00
David Taylor
ebb0b94f73
DEV: Load plugin stylesheets before theme stylesheets (#9240)
This is a more logical order, since themes are more lightweight than plugins, and are often used to augment plugin styles
2020-03-19 19:22:57 +00:00
Martin Brennan
b355f03448 FIX: Ensure show_short URLs handle secure uploads using multisite (#9212)
Meta report: https://meta.discourse.org/t/short-url-secure-uploads-s3/144224
* if the show_short route is hit for an upload that is
  secure, we redirect to the secure presigned URL. however
  this was not taking into account multisite so the db name
  was left off the path which broke the presigned URL
* we now use the correct url_for method if we know the
  upload (like in the show_short case) which takes into
  account multisite
2020-03-17 10:50:50 +10:00
Robin Ward
de4195be7e Let's not log the username/password
This could easily be seen by someone who shouldn't.
2020-03-11 12:54:02 -04:00
Sam Saffron
b3a4cf8ee6
FIX: last ip address could point at wrong ip
Due to unicorn env object recycling request.ip could point at the wrong
ip address by the time defer block is called. This usually would happen
under load.

This also avoids keeping the entire request object as referenced by the
closure.
2020-03-11 17:46:18 +11:00
Robin Ward
64f11e6b6c
Revert "FIX: Don't allow people to clear the upload bucket while it's enabled"
This reverts commit 4bb8db024c.
2020-03-05 16:34:13 -05:00
Neil Lalonde
5c22c7fc80
Version bump 2020-03-05 16:10:54 -05:00
Robin Ward
8410e6f8c1 SECURITY: Add more restrictions on invite emails
They could be filtered and returned in some circumstances where they
shouldn't have been.
2020-03-05 09:56:22 -05:00
Robin Ward
525fd7c51f SECURITY: Ensure the invite JSON API matches the UX
Anonymous users could query the invite json and see counts and
summaries which is not allowed in the UX of Discourse.

This commit has those endpoints return a 403 unless the user is
allowed to invite.
2020-03-05 09:56:13 -05:00
Joffrey JAFFEUX
32bf2e99c8 FIX: allows to select the action when agreeing with penalty (#9099)
Note this commit also fixes an issue where the edit post actions was trying to focus the edit textarea, but was using jquery functions on a DOM node.

scrollTo is not available on IE11 but that shouldn't cause much trouble.
2020-03-04 10:32:40 -05:00
Mark VanLandingham
db19f64b2b FIX: Prettier on iframed-html component 2020-02-27 11:53:10 -06:00
Mark VanLandingham
ab133a7036 Merge pull request from GHSA-vw39-6w7q-gfx5
Co-authored-by: Robin Ward <robin.ward@gmail.com>
2020-02-27 11:50:03 -06:00
Neil Lalonde
f24d09b5c6 Version bump 2020-02-26 16:56:38 -05:00
Neil Lalonde
b6538bb306 Version bump 2020-02-13 16:57:19 -05:00
David Taylor
4da6833d6b DEV: Bump omniauth-github from 1.3.0 to 1.4.0 (#8924)
This switches the github API access to use header-based authentication, rather than the deprecated parameter-based method
2020-02-11 09:46:45 +00:00
Roman Rizzi
3f03914c94 FIX: Ensure sourcemap's source is correct. Uses the full assets path this time. (#8774) 2020-01-24 15:58:34 -03:00
Neil Lalonde
fa68a20841 Merge diffs from master 2020-01-21 17:09:28 -05:00
Neil Lalonde
686c3f6a2f Version bump 2020-01-21 17:08:31 -05:00
Régis Hanol
30e057c647 FIX: groups pagination was broken 2020-01-17 09:58:45 +01:00
Roman Rizzi
d70b0d32da SECURITY: Do not create a notification if a staged user post gets quoted/linked inside a restricted category 2020-01-16 15:51:36 -03:00
Régis Hanol
50b5fd7711 SECURITY: use strict JSON parsing when parsing backup metadata 2020-01-15 21:56:29 +01:00
Régis Hanol
f6be51b86d Revert "SECURITY: use strict JSON parsing when parsing backup metadata"
This reverts commit fe75b4a776.
2020-01-15 15:54:51 +01:00
Martin Brennan
fe75b4a776 SECURITY: use strict JSON parsing when parsing backup metadata 2020-01-15 15:40:28 +01:00
Régis Hanol
edf7113b54 FIX: group membership leak
FIX: raised a proper NotFound exception when filtering groups by username with invalid username.
FIX: properly filter the groups based on current user visibility when viewing another user's groups.
DEV: Guardian.can_see_group?(group) is now using Guardian.can_see_groups(groups) instead of duplicating the same code.
FIX: spec for groups_controller#index when group directory is disabled for logged in user.
FIX: groups_controller.sortable specs to actually test all sorting combinations.
DEV: s/response_body/body/g for slightly shorter spec code.
FIX: rewrote the "view another user's groups" specs to test all group_visibility and members_group_visibility combinations.
DEV: Various refactoring for cleaner and more consistent code.
2020-01-15 15:37:08 +01:00
Martin Brennan
943f7e14c4 SECURITY: Improve second factor auth logic 2020-01-10 11:09:46 +10:00
Rafael dos Santos Silva
1ceaa396f2
FIX: Use cached MaxMind DB for longer
Don't try to update the IP database as it's gone.

This allows users to rebuild Discourse while we work on a proper
fix / alternative database.
2019-12-31 13:06:11 -03:00
Michael Brown
ae77d184ba FIX: cache_critical_dns was erroring without IPAddr
* sometimes cache_critical_dns would error out since "IPAddr" was
  undefined
* sometimes it autoloaded, so no error
2019-12-31 13:22:12 +05:30
Rafael dos Santos Silva
f4031b9754 DEV: Update Bundler (#8583)
* DEV: Update Bundler

Latest RubyGems 3.1.1 vendors bundler 2.1.0 *again*. And our base
image build system even updates it to 2.1.1.

After that it is unable to run a simple `bundle install` because of
version mismatch.

Updating bundler to the one that comes with our enforced Ruby version
solves this.

* DEV: Update bundler in CI too
2019-12-23 14:50:01 +05:30
Neil Lalonde
fab6eed917 Version bump 2019-12-19 14:07:44 -05:00
David Taylor
c0383f5a0d SECURITY: Correct permission check when revoking user API keys 2019-12-17 11:06:49 +00:00
Krzysztof Kotlarek
c8845e6213 SECURITY: vulnerability in WildcardUrlChecker 2019-12-13 09:59:25 -05:00
Krzysztof Kotlarek
a2af9c07de SECURITY: upgrade rack-mini-profiler to avoid possible XSS (#8537) 2019-12-12 13:19:53 +11:00
Dan Ungureanu
e37cccfe7f
SECURITY: Ensure only image uploads can be inlined
This prevents malicious files (for example special crafted XMLs) to be
used in XSS attacks.
2019-12-11 17:19:24 +02:00
Dan Ungureanu
dd65629836
SECURITY: Remove event handlers from SVG files 2019-12-11 17:19:23 +02:00
Neil Lalonde
8d48707d9b Version bump 2019-12-05 13:50:57 -05:00
Joffrey JAFFEUX
fbeb488ec5 DEV: s/\$redis/Discourse\.redis
With manual merge for conflicts
2019-12-03 13:27:12 +01:00
Sam Saffron
14e9bea12f DEV: Implement a faster Discourse.cache
This is a bottom up rewrite of Discourse cache to support faster performance
and a limited surface area.

ActiveSupport::Cache::Store accepts many options we do not use, this partial
implementation only picks the bits out that we do use and want to support.

Additionally params are named which avoids typos such as "expires_at" vs "expires_in"

This also moves a few spots in Discourse to use Discourse.cache over setex
Performance of setex and Discourse.cache.write is similar.
2019-12-03 13:25:17 +01:00
Sam Saffron
bc6a643f5c DEV: use Discourse.cache over Rails.cache
With manual merge on lib/oneboxer.rb
2019-12-03 13:24:36 +01:00
Martin Brennan
1c558d3ecc FIX: oneboxer.js infinitely retrying failed requests (#8414)
* setFailedCache was used like a variable object, when it was in fact a function
2019-11-27 15:24:36 +10:00
Neil Lalonde
c35ecbea89 Version bump 2019-11-06 12:31:38 -05:00
David Taylor
d73e1ee753 FIX: Respond to user search correctly when category_id is blank
Previously it would search for category_id=0, which does not exist. With the new permission checks, this returns a 404
2019-10-28 18:34:37 +00:00
David Taylor
b9b7d0cb70 DEV: Update users controller spec following user_search update 2019-10-28 12:41:52 +00:00
David Taylor
b24ab069cd SECURITY: Check permissions when autocompleting mentions 2019-10-28 12:11:00 +00:00
Sam Saffron
15df856915 FIX: allow storage of non unique rows in oauth2_user_infos
Certain DBs have duplicates already, if we want to ensure uniqueness here
we need to decide first how to clean up existing data and confirm all the
plugins expect this.
2019-10-25 13:13:57 +05:30
Dan Ungureanu
9ac871517d
PERF: Add index on group to category_groups (#8231) 2019-10-23 15:20:10 +03:00
Dan Ungureanu
af3afe5940
PERF: Add unique index oauth2_user_infos(user_id, provider) (#8230) 2019-10-23 15:20:07 +03:00
Neil Lalonde
2672410743 Version bump 2019-10-10 11:46:54 -04:00
Sam Saffron
7902dd201f SECURITY: mini profiler enabled incorrectly for admins
We expect mini profiler only to show up on accounts that are flagged as
developer accounts.

Unfortunately there was a bypass on any controllers that mix in ApplicationHelper
2019-10-09 12:50:24 +11:00
Neil Lalonde
ae6addeb2d Merge diffs from master 2019-10-01 16:52:46 -04:00
Neil Lalonde
f55439e33e Version bump 2019-10-01 16:51:58 -04:00
Robin Ward
cc5fc18f5f SECURITY: Don't allow base_uri as embeddable host if none exist 2019-10-01 18:00:31 +02:00
Sam Saffron
21e0eebada SECURITY: update rubyzip dependency
This updates rubyzip library so that callers can trust entries when
extracting files avoiding situations where a rogues zip imported by a rogue
admin could cause a disk space issue.
2019-10-01 17:11:53 +10:00
Sam Saffron
f9bdbef16f SECURITY: update rack-mini-profiler to latest to correct XSS
This corrects an XSS in ?pp=help.

Also removes the jQuery dependency from rack-mini-profiler and restricts
memory sensitive profiling methods development only.
2019-10-01 16:56:30 +10:00
Penar Musaraj
382f6959fc SECURITY: XSS when oneboxing user profile location field
The XSS here is only possible if CSP is disabled. Low impact since CSP is enabled by default in SiteSettings.
2019-09-17 16:38:58 -04:00
Robin Ward
85d6de7b00 Version bump 2019-09-06 16:09:03 -04:00
Neil Lalonde
33b93124d6 Version bump 2019-09-04 11:18:06 -04:00
Sam Saffron
d0919fdfb2 FEATURE: track date api key was last used
Start tracking the date an api key was last used. This has already been
the case for user_api_keys.

This information can provide us with the ability to automatically expire
unused api keys after N days.
2019-09-03 18:51:34 +02:00
Sam Saffron
c36f3485f0 FIX: report cached controller and action to loggers
Previously we would treat all cached hits in anon cache as "other"

This hinders analysis of cache performance and makes logging inaccurate
2019-09-03 18:51:28 +02:00
Sam Saffron
d94015fcff FEATURE: anon cache reports data to loggers
This allows custom plugins such as prometheus exporter to log how many
requests are stored in the anon cache vs used by the anon cache.

This metric allows us to fine tune cache behaviors
2019-09-03 18:51:20 +02:00
Sam Saffron
30f9200fc7 PERF: avoid filtering shared drafts when not used
In some very specific cases (large sites) shared drafts can introduce a
performance hit due to the mechanism used to filter out topics

This avoids the entire process when shared drafts are not enabled
2019-08-29 11:35:47 +10:00
David Taylor
d6b1c1ce40 FIX: When activating via omniauth, create tokens after password reset
Resetting a password invalidates all email tokens, so we need to create the tokens after the password reset.
2019-08-28 14:49:51 +01:00
David Taylor
91bff783b7 FIX: When activating a user, ensure the change is reflected immediately
When activating a user via an external provider, this would cause the "this account is not activated" message to show on the first attempt, even though the account had been activated correctly.
2019-08-28 14:08:08 +01:00
David Taylor
9c39acfbb0 SECURITY: Reset password when activating an account via auth provider
Followup to d693b4e35fe0e58c5578eae4a56c06dff4756ba2
2019-08-28 14:08:03 +01:00
Sam Saffron
a27f7e2781 PERF: no point updating the same columns twice
We are unconditionally updating attributes anyway
2019-08-28 18:39:16 +10:00
Sam Saffron
aaafbd1ae5 FIX: add_to_serializer not correctly accounting for inheritance chains
This is a very long standing bug we had, if a plugin attempted to amend a
serializer core was not "correcting" the situation for all descendant classes
this often only showed up in production cause production eager loads serializers
prior to plugins amending them.

This is a critical fix for various plugins
2019-08-27 18:23:50 +10:00
Gerhard Schlager
498ef7a4a3 Revert "FEATURE: Use configured quotation marks in fancy topic title"
This reverts most of commit ce8e099639.

The rake task to update fancy topic titles is still there, because that's useful even without this feature.
2019-08-26 16:28:15 +02:00
Sam Saffron
2e0274b598 SECURITY: add rate limiting to anon JS error reporting
This adds a 1 minute rate limit to all JS error reporting per IP. Previously
we would only use the global rate limit.

This also introduces DISCOURSE_ENABLE_JS_ERROR_REPORTING, if it is set to
false then no JS error reporting will be allowed on the site.
2019-08-20 11:32:45 +10:00
Arpit Jalan
227a8644f1 SECURITY: don't reveal category details to users that do not have access 2019-08-19 12:43:15 +05:30
David Taylor
c2da14925e SECURITY: Restrict message-bus access on login_required sites 2019-08-14 10:10:24 +01:00
Gerhard Schlager
00d448105e FIX: Disallow user self-delete when user posted in PMs
All posts created by the user are counted unless they are deleted,
belong to a PM sent between a non-human user and the user or belong
to a PM created by the user which doesn't have any other recipients.

It also makes the guardian prevent self-deletes when SSO is enabled.
2019-08-10 12:07:09 +02:00
Sam Saffron
011805f577 Revert "FEATURE: add Noindex to robots.txt for disallowed routes"
This reverts commit d84256a876.

This is not supported by Google and causes robots.txt to be flagged as
invalid

Removing Noindex
2019-07-30 11:37:27 +10:00
David Taylor
1c4c41107a SECURITY: Sanitize email id for use as mutex key 2019-07-24 13:50:42 +01:00
David Taylor
60f710f2bd SECURITY: Add confirmation screen when connecting associated accounts 2019-07-24 13:36:14 +01:00
Gerhard Schlager
0933cdf285 SECURITY: Validate backup chunk identifier 2019-07-22 08:45:09 +02:00
Neil Lalonde
a3c836541c Version bump 2019-07-15 10:16:48 -04:00
Guo Xiang Tan
a3fccbc3c3 Fix the build.
Follow up to 4b0cf7f6dd.
2019-07-15 16:43:14 +08:00
Guo Xiang Tan
5516000740 SECURITY: XSS when displaying watched words in admin panel.
The XSS here is only possible if CSP is disabled. Low impact since CSP
is enabled by default in SiteSettings.
2019-07-15 11:00:19 +08:00
Robin Ward
8c890fa64a SECURITY: SQL injection with default categories
This is a low severity security fix because it requires a logged in
admin user to update a site setting via the API directly to an invalid
value.

The fix adds validation for the affected site settings, as well as a
secondary fix to prevent injection in the event of bad data somehow
already exists.
2019-07-11 13:52:59 -04:00
Robin Ward
154ad2b402 SECURITY: Upgrade lodash
There is a security hole in lodash with prototype pollution. It's not
clear if Discourse is affected but to be on the safe side we will
upgrade right away.

Note that the front end Discourse does not appear to use `defaultsDeep`
in our custom build and should be protected.
2019-07-11 10:51:29 -04:00
Robin Ward
3d527546d7 SECURITY: XSS with title selector on preferences page
Note this is very low severity as the group needs to be created with a
default title that contains HTML, and group creation is restricted to
staff members right now.
2019-07-09 17:35:11 -04:00
Robin Ward
1d67cc0e44 SECURITY: Strip HTML from invite emails
We also strip new lines from the emails because it ruins the markdown
formatting which expects a one line message.
2019-07-05 14:58:31 -04:00
Arpit Jalan
815dbdb082 FIX: creating new badge is failing on empty SQL query (#7837) 2019-07-02 15:23:25 +05:30
Gerhard Schlager
fe98b0664a FIX: Don't send notification email when user isn't allowed to see topic 2019-07-02 09:05:52 +10:00
Gerhard Schlager
86145ca975 DEV: Respond with error 400 to uploads requested via XHR
follow-up to 13f38055
2019-06-27 11:30:36 +02:00
Gerhard Schlager
ae8d0513c3 SECURITY: XSS in routes
Co-authored-by: Guo Xiang Tan <tgx_world@hotmail.com>
Co-authored-by: David Taylor <david@taylorhq.com>
2019-06-26 16:44:59 +02:00
Bianca Nenciu
bba4786df2 SECURITY: Escape email text for posts containing [details]. 2019-06-26 16:44:52 +02:00
Neil Lalonde
0bf267a662 Version bump 2019-06-17 20:50:02 -04:00
David Taylor
db2b7b0b24 SECURITY: Add confirmation screen when logging in via user-api OTP 2019-06-17 18:18:25 +01:00
David Taylor
f19b9c8de8 SECURITY: Add confirmation screen when logging in via email link 2019-06-17 18:18:12 +01:00
Neil Lalonde
449d21b88c Version bump 2019-06-10 13:10:51 -04:00
Penar Musaraj
3f2c8dcc2a SECURITY: Bump Handlebars to version 4.1.2
WS-2019-0064: Versions of handlebars prior to 4.0.14 are vulnerable to Prototype Pollution. Templates may alter an Objects prototype, thus allowing an attacker to execute arbitrary code on the server.
2019-06-05 15:16:50 -04:00
Neil Lalonde
9a9b0a6847 Version bump 2019-05-30 13:47:44 -04:00
Sam Saffron
1ab0f0ccb4 SECURITY: avoid use of send in favor of public_send 2019-05-07 17:21:04 +10:00
Joffrey JAFFEUX
a787f89440 FIX: ensures we have touches when starting pan event (#7435) 2019-04-25 11:07:52 +02:00
Joffrey JAFFEUX
f5416a987f Version bump 2019-04-24 16:23:00 +02:00
Sam Saffron
4a67301146 FEATURE: enable NGINX brotli support unconditionally
Previously we would rely on enable brotli in the web template to turn this
on, going forward this is default on
2019-04-11 12:42:23 +10:00
Robin Ward
e683e2d6b4 SECURITY: Update Handlebars to 4.1
This is to address: https://www.npmjs.com/advisories/755

It is a low priority fix, as Discourse does not allow end users to input
raw handlebars templates.
2019-04-10 16:08:26 -04:00
Guo Xiang Tan
b5cce6c276 Version bump. 2019-04-08 12:37:44 +08:00
Guo Xiang Tan
597c7c4bca SECURITY: Remove XSS in composer preview when applying image scale buttons. 2019-04-08 12:10:39 +08:00
Robin Ward
1bd0e1a32e FIX: Sometimes queued post would have a string for a category
In this case, don't migrate the old queued post category
2019-04-06 20:39:14 -04:00
Neil Lalonde
4b2cbf8858 Version bump 2019-04-05 12:24:37 -04:00
Neil Lalonde
be4b531072 Version bump 2019-03-28 11:05:56 -04:00
Sam Saffron
7daac542f6 SECURITY: properly validate return URL for SSO
Previously carefully crafted URLs could redirect off site
2019-03-25 09:03:47 +11:00
Roman Rizzi
1234acd2dd Version bump 2019-03-13 16:47:46 -03:00
Neil Lalonde
a7d3d8ffa1 Version bump 2019-03-11 14:22:48 -04:00
Neil Lalonde
a5df8c8dcf Version bump 2019-03-01 12:22:42 -05:00
Sam
e81266e795 SECURITY: bypass long GET requests
In some rare cases we would check URLs with very large payloads
this ensures we always bypass and do not read entire payloads
2019-02-27 21:52:20 +11:00
David Taylor
11af9ccfa5 REFACTOR: Proxy letter avatars in rails instead of nginx
Co-authored-by: Sam Saffron <sam.saffron@gmail.com>
Co-authored-by: David Taylor <david@taylorhq.com>

This gives more control over the request. In particular we can easily
lookup DNS dynamically, instead of only upon NGINX startup.
Previously, NGINX was looking up IP for the letter avatar service and
caching the CDN IP address, this caused issues if CDN changed IP, in
which letter avatars would be broken till a container restarted.

NGINX config has been updated to add caching. This change will require
a container rebuild.

The proxy will now function in development environments, so the patch
for `letter_avatar_proxy` has been removed.
2019-02-18 08:52:20 +11:00
Sam
625ceaad31 FIX: unable to create new categories
Previous attempt at 70adb940 missed the critical "everyone" group from
staff, leading to a case where staff was no longer able to create categories
2019-02-15 10:27:41 +11:00
Bianca Nenciu
3d5991ff8f DEV: Improve test. 2019-02-14 23:05:06 +02:00
Bianca Nenciu
f808157670 FIX: Fix failing test. 2019-02-14 23:05:04 +02:00
Bianca Nenciu
2f196614fc SECURITY: Do not leak private group names. (#7008) 2019-02-14 23:05:02 +02:00
Vinoth Kannan
d8266319f4 FIX: Bump onebox version to include imgur security fix
(cherry picked from commit 36ff971c9c)
2019-02-13 11:56:23 +05:30
Vinoth Kannan
ee74122ce1 FIX: Bump onebox version to include imgur security fix
(cherry picked from commit fb911766ee)
2019-02-13 11:55:34 +05:30
Neil Lalonde
b1f5aa4058 Version bump 2019-02-07 11:07:28 -05:00
David Taylor
70e345518c SECURITY: Escape HTML in dashboard report tables 2019-02-01 13:11:52 +00:00
Neil Lalonde
7a079b286c Merge diffs from master 2019-01-31 17:52:14 -05:00
Neil Lalonde
448e960121 Version bump 2019-01-31 17:50:24 -05:00
Neil Lalonde
0a32b86f23 Version bump 2019-01-28 11:15:39 -05:00
Neil Lalonde
21f8511396 Version bump 2019-01-21 15:01:27 -05:00
Joffrey JAFFEUX
9f7e64eead SECURITY: fix possible XSS with badges (#6912) 2019-01-21 13:11:53 +01:00
Neil Lalonde
7f50fc4f70 Version bump 2019-01-14 17:03:48 -05:00
Sam
299f8ecdac SECURITY: escape title HTML for inline onebox 2019-01-10 12:04:58 +11:00
Neil Lalonde
5771b29d19 Version bump 2019-01-02 15:33:06 -05:00
Guo Xiang Tan
fca2117d2b SECURITY: Users can pick non-avatar uploads.
https://meta.discourse.org/t/bug-report-idor-on-avatar-pick-function-discussions-udacity-com/103564
2018-12-18 13:56:27 +08:00
Neil Lalonde
eccad71d6c Version bump 2018-12-14 12:22:27 -05:00
Sam
4ceb77115e DEV: anonymizing should not delete uploads
We have another job for upload deletion cause uploads may be shared
2018-12-13 16:42:52 +11:00
Sam
e2c2321634 SECURITY: do not delete avatars uploads when deleting accounts
We rely on the clean up uploads job to do this safely
2018-12-13 16:33:00 +11:00
Sam
a1332a906b FIX: remove slow platform detection from server side
Historically due to https://meta.discourse.org/t/why-is-discourse-so-slow-on-android/8823
we decreased page sizes of both home page and topic page on android by half.

This was done on the server side and as a side effect and caused page sizes on android
to mismatch between Android and non Android.

Unfortunately about a year ago googlebot started pretending it is Android,
this cause Google to start indexing pages as what android would see. So
it saw double the amount of pages in the index as what exists on desktop.
This in turn caused double the amount of indexing work and a large amount
of broken links on long topics.

This fix removes all special behavior which is no longer needed due to
other performance work in Discourse including raw handlebars on home page
and virtual dom on topic pages.

I tested we do not need this on Blu Advance 5.0 it has 1.3 GHZ mediatec mt6580
This phone retails for around $50 USD.

If we decide long term that we want any hacks like this we will shift them
to the client side. It can just hold data in memory without rendering.
2018-12-13 16:15:16 +11:00
David Taylor
7d9b672877 FIX: Do not serialize user fields unless they are specified for display (#6736) 2018-12-07 11:00:47 +00:00
Guo Xiang Tan
ff5f991980 SECURITY: Require groups to be given when inviting to a restricted category. (#6715) 2018-12-06 15:05:34 +01:00
Guo Xiang Tan
e6ad3ef0ff DEV: Don't publish post messages to non-human users. 2018-12-06 15:04:40 +01:00
Régis Hanol
91610578a8 FIX: properly secure poll message bus
Co-authored-by: Sam <sam.saffron@gmail.com>
2018-12-06 15:04:31 +01:00
Vinoth Kannan
704da6e9e9 FIX: incoming email matches the wrong user if null bounce key available in db 2018-11-30 13:45:29 +05:30
Neil Lalonde
1ac67cb1b3 Version bump 2018-11-29 11:18:21 -05:00
Sam
bc4cb4f871 SECURITY: enforce hostname to match discourse hostname
This ensures that the hostname rails uses for various helpers always matches
the Discourse hostname
2018-11-15 16:12:28 +11:00
Sam
bbf7bb176c SECURITY: update rack from 2.0.5 to 2.0.6
This release contains security fixes to the underlying rack library
used by Discourse.

Impact is not too high as we do not use request.scheme in our templates
2018-11-07 10:06:05 +11:00
David Taylor
a4c03a6496 Version bump 2018-11-05 11:18:34 +00:00
Joffrey JAFFEUX
ee3cf05acc UX: bumps the user-api-key version to 3 (#6526)
* UX: bumps the user-api-key version to 3

* fix spec
2018-11-02 11:04:23 +01:00
Joffrey JAFFEUX
cdb4c1651b FEATURE: adds latest to user-api-key session scope 2018-11-02 11:04:10 +01:00
Joffrey JAFFEUX
311f29d9d6 FEATURE: adds list#(unread|new) to user api key routes (#6494) 2018-11-02 11:04:01 +01:00
Kyle Zhao
eb54bf9e5b SECURITY: update loofah for CVE-2018-16468 2018-10-30 11:36:21 -04:00
Neil Lalonde
df61b9309d Version bump 2018-10-12 10:56:02 -04:00
Guo Xiang Tan
b1b9faeae6 Fix UploadRecovery from S3 fails with bucket name containing sub-folder. 2018-10-01 20:22:54 +08:00
Guo Xiang Tan
158662519d Fix onceoff job in cfa7173da3 not running. 2018-10-01 18:36:39 +08:00
Guo Xiang Tan
81c21681ce FIX: Onceoff job to fix missing user profile backgrounds. 2018-10-01 18:31:56 +08:00
Sam
fd8bf5d2cb FIX: correct readonly timeout
So it only applies in readonly mode
2018-09-20 15:18:35 +10:00
Sam
ad74eea50d FIX: in redis readonly raise an exception from DistributedMutex
If we detect redis is in readonly we can not correctly get a mutex
raise an exception to notify caller

When getting optimized images avoid the distributed mutex unless
for some reason it is the first call and we need to generate a thumb

In redis readonly no thumbnails will be generated
2018-09-19 15:51:17 +10:00
Sam
0ec92f95d4 SECURITY: correct XSS on long topic titles 2018-09-18 08:55:43 +10:00
Sam
98ff2fd8ab SECURITY: remove admin memory diagnostics routes 2018-09-18 08:35:54 +10:00
Guo Xiang Tan
8a22e60438 Backward compatibility for dropping functions in ColumnDropper.
https://meta.discourse.org/t/launcher-rebuild-error-pg-error-schema-discourse-functions-does-not-exist/96209
2018-09-17 14:52:54 +08:00
Neil Lalonde
0b282fb812 Version bump 2018-09-14 11:43:45 -04:00
Guo Xiang Tan
8a171389e1 FIX: Onceoff job to recover missing post uploads.
This fixes the regression due to 1f636c445b
2018-09-14 11:13:21 +08:00
Guo Xiang Tan
cb3be41ead DEV: Avoid using send and make the method public instead. 2018-09-14 11:12:56 +08:00
Guo Xiang Tan
8c417d949e Accept custom AR relation for UploadRecovery. 2018-09-14 11:12:46 +08:00
Guo Xiang Tan
f1f0a6b358 FIX: Do not try to recover invalid Upload#short_url in UploadRecovery. 2018-09-14 11:12:39 +08:00
Guo Xiang Tan
eb5f34b779 Fix the build. 2018-09-14 11:12:30 +08:00
Guo Xiang Tan
33e09ca6d6 Add basic test case for UploadRecovery. 2018-09-14 11:12:19 +08:00
Guo Xiang Tan
7784bbe702 Rescue errors when running dry run for UploadRecovery. 2018-09-14 11:12:09 +08:00
Guo Xiang Tan
be9e64eabf Fix s3 recovery from tombstone in UploadRecovery. 2018-09-14 11:12:00 +08:00
Guo Xiang Tan
0793253b0b Add dry run option to UploadRecovery. 2018-09-14 11:11:55 +08:00
Guo Xiang Tan
07a53907a7 Fix incorrect variable. 2018-09-14 11:11:41 +08:00
Guo Xiang Tan
29e9329eb3 New rake task uploads:recover. 2018-09-14 11:11:35 +08:00
Guo Xiang Tan
ec0dccf438 DEV: Print the error class in uploads:list_posts_with_broken_images. 2018-09-14 11:11:28 +08:00
Guo Xiang Tan
45146818d7 Add extra protection in Upload#get_from_url.
In case the extension goes missing from the URL.
2018-09-14 11:11:22 +08:00
Joffrey JAFFEUX
5ab9a9d898 FIX: ensures we have a color for reports (#6396) 2018-09-13 18:53:30 +02:00
Arpit Jalan
a43ddace3e FIX: ignore and log bad json values for custom fields 2018-09-13 17:41:10 +05:30
Guo Xiang Tan
8069b664b0 FIX: Uploads not being linked correctly to posts.
Regression due to 1f636c445b.
2018-09-12 00:01:31 -07:00
Neil Lalonde
187505d0ba Version bump 2018-09-10 19:43:35 -04:00
Sam
580caa9ef1 SECURITY: correct edge case when SSO provides unvalidated emails 2018-09-11 08:24:48 +10:00
Neil Lalonde
f75dc4ca65 Version bump 2018-08-30 10:53:41 -04:00
David Taylor
e91b3ec707 SECURITY: Prevent users from modifying custom fields 2018-08-30 13:00:11 +01:00
Neil Lalonde
d8f0379931 Version bump 2018-08-21 11:55:00 -04:00
Neil Lalonde
e8b880deae SECURITY: prevent use of X-Forwarded-Host to perform XSS 2018-08-13 17:09:20 -04:00
Neil Lalonde
4372f468ee Version bump 2018-08-07 12:33:08 -04:00
Neil Lalonde
6aecebf294 Version bump 2018-07-26 14:16:20 -04:00
David Taylor
e2e2d57f37 FIX: Remove return statement from inside block 2018-07-26 15:59:36 +01:00
Régis Hanol
c2d596b223 SECURITY: force IM decoder based on file extension - part 3 2018-07-25 23:55:34 +02:00
Régis Hanol
b02e29829e SECURITY: force IM decoder based on file extension - part 2 2018-07-25 23:08:25 +02:00
Régis Hanol
a39aa9c61d SECURITY: force IM decoder based on file extension 2018-07-25 22:00:53 +02:00
David Taylor
7926a1f7bb FIX: Remove plugin.enabled? checks at initialization time (#6166)
Checking `plugin.enabled?` while initializing plugins causes issues in two ways:
  - An application restart is required for changes to take effect. A load-balanced multi-server environment could behave very weirdly if containers restart at different times.
  - In a multisite environment, it takes the `enabled?` setting from the default site. Changes on that site affect all other sites in the cluster.

Instead, `plugin.enabled?` should be checked at runtime, in the context of a request. This commit removes `plugin.enabled?` from many `instance.rb` methods.

I have added a working `plugin.enabled?` implementation for methods that actually affect security/functionality:
  - `post_custom_fields_whitelist`
  - `whitelist_staff_user_custom_field`
  - `add_permitted_post_create_param`
2018-07-25 16:45:24 +01:00
Robin Ward
66a96b1ed2 SECURITY: Consider 0.0.0.0 a private IP 2018-07-24 11:16:57 -04:00
Vinoth Kannan
a286be473a FIX: returns provider_not_enabled error even if enabled 2018-07-16 11:06:48 +01:00
Sam
6fc8c494a3 SECURITY: extra CORS headers should be set on correct host 2018-07-11 09:30:02 +10:00
David Taylor
d0130e4ab9 SECURITY: Do not allow authentication with disabled plugin-supplied a… (#6071)
Do not allow authentication with disabled plugin-supplied auth providers
2018-07-09 14:27:04 +10:00
Sam
284e65f7d3 SECURITY: category badges should HTML escape names 2018-06-28 18:15:47 +10:00
Joffrey JAFFEUX
96cb283170 SECURITY: prevents XSS when showing tooltip 2018-06-27 14:46:57 +02:00
Dax74
3d5b8c16b7
Link updated
There was a link to a deleted guide, see https://meta.discourse.org/t/wrong-link-on-manual-admin-creation/90849
2018-06-27 11:33:09 +02:00
Neil Lalonde
f5ee848ab0 Version bump 2018-06-21 10:42:01 -04:00
Sam
8d6fbe1769 SECURITY: update sprockets for CVE-2018-3760 2018-06-20 09:50:54 +10:00
Guo Xiang Tan
1e044c6c75 Monkey patch in 7830a950ef 2018-06-19 10:37:32 +08:00
Neil Lalonde
a2ebae2d5b Version bump 2018-05-31 18:29:51 -04:00
Sam
7e055e01c5 drop ruby 2.3 testing 2018-05-21 14:26:05 +10:00
Sam
d72e4ee84e SECURITY: remove alert dialog from local dates 2018-05-21 12:29:06 +10:00
Sam
8ef654d71f Merge branch 'master' into beta 2018-05-17 12:09:55 +10:00
Neil Lalonde
f1ea9cbd91 Version bump 2018-05-04 15:32:31 -04:00
Neil Lalonde
6fb8361be8 Version bump 2018-05-03 16:57:26 -04:00
Sam
5ec054623e clean up drag on iOS handling, we need it bound earlier 2018-04-30 15:57:23 +02:00
Sam
9dc47dbd33 improve prev hack 2018-04-30 15:57:16 +02:00
Sam
9506f7448f FIX: dragging of timeline was flaky on iOS 2018-04-30 15:57:09 +02:00
Neil Lalonde
7e69341dcd Version bump 2018-04-24 11:17:30 -04:00
Neil Lalonde
710af4b28c Version bump 2018-04-13 10:47:10 -04:00
Neil Lalonde
6bc76a9573 Version bump 2018-03-26 11:23:15 -04:00
Vinoth Kannan
1448f8b8e7 SECURITY: Oneboxer should escape the URL before processing
(cherry picked from commit 58bb3967e5)
2018-03-15 20:04:50 +05:30
Neil Lalonde
edfd3967ab Version bump 2018-03-07 15:18:39 -05:00
Sam
4d9d864df7 SECURITY: ensure users have permission when moving categories 2018-03-02 12:14:18 +11:00
Neil Lalonde
dae9d369ec Version bump 2018-02-15 17:48:49 -05:00
Sam
9dd4a59226 SECURITY: correct local onebox category checks
Also removes ugly "source_topic_id" from cooked posts

Patch was authored by @zogstrip

Signed-off-by: Sam <sam.saffron@gmail.com>
2018-02-14 10:41:07 +11:00
Robin Ward
1687d3657f SECURITY: Prevent robots from indexing more routes
These routes could contain sensitive material and should never be
indexed for content.
2018-02-04 13:27:07 -05:00
Neil Lalonde
557dde29c7 Version bump 2018-01-31 12:18:54 -05:00
Gerhard Schlager
7129e6e4cb SECURITY: email domain whitelist could be bypassed 2018-01-17 21:47:50 +01:00
Neil Lalonde
387bdadbe2 Version bump 2018-01-03 16:55:22 -05:00
Neil Lalonde
63d48a0ed9 Version bump 2017-12-20 18:50:51 -05:00
Guo Xiang Tan
636b31bc3c SECURITY: Don't pass email backup token to sidekiq as a parameter.
* This exposes the token in the Sidekiq dashboard which can be
  viewed by an admin and defeats the purpose of using a token
  in the download backup email ink.
2017-12-18 11:33:24 +08:00
Guo Xiang Tan
3f21f63a42 SECURITY: Any group can be invited into a PM. 2017-12-14 15:02:01 +08:00
Sam
2baa4c9b13 SECURITY: prevent staged accounts from changing email
# Conflicts:
#	app/controllers/users_controller.rb
#	spec/controllers/users_controller_spec.rb
2017-12-14 17:21:55 +11:00
Neil Lalonde
04f361eb72 Version bump 2017-12-12 11:38:26 -05:00
Neil Lalonde
0c40e2dddf Version bump 2017-11-30 16:33:01 -05:00
Neil Lalonde
8f77b478e4 Version bump 2017-10-30 11:21:04 -04:00
Neil Lalonde
922e84826b SECURITY: signup without verified email using Google auth 2017-10-16 14:51:06 -04:00
Neil Lalonde
744e0613f0 Version bump 2017-10-13 11:30:34 -04:00
Arpit Jalan
39279cf66c SECURITY: verify that inviter can invite new user to a topic 2017-10-09 16:38:07 +05:30
Guo Xiang Tan
24a0507d64 SECURITY: Fix XSS on unsubscribed page. 2017-10-09 11:23:01 +08:00
Neil Lalonde
5f0249f4ec Version bump 2017-10-06 11:29:02 -04:00
Robin Ward
1069924c1f FIX: Remove unused mixin 2017-09-29 11:24:51 -04:00
Robin Ward
b83bc6c2e9 Revert "A safe way to create class variables in a multisite environment."
The approach taken by this interface was flawed. We need a better
solution.
2017-09-29 11:24:27 -04:00
Régis Hanol
9a23cf8921 FIX: wasn't able to save watched/tracked/muted categories/tags 2017-09-29 13:27:01 +02:00
Neil Lalonde
f1a068367a Version bump 2017-09-28 15:27:56 -04:00
Guo Xiang Tan
bad3d4e29d SECURITY: Update Nokogiri. 2017-09-25 21:04:53 +08:00
Régis Hanol
0a7d18b525 Version bump 2017-09-16 00:55:52 +02:00
Neil Lalonde
b2660b7d12 Version bump 2017-09-14 11:09:30 -04:00
Robin Ward
1ce4a4dab8 FIX: Users should be able to activate their emails even if unapproved
Note in discourse `active` means "Email is active" - they still can't
login until approved
2017-09-12 15:16:43 -04:00
Robin Ward
ee59a2b5c8 SECURITY: Prevent users from updating to blacklisted email domains 2017-09-12 10:13:20 -04:00
David Taylor
edb53404a2 SECURITY: Only publish PM reply messagebus notifications to allowed users 2017-09-08 17:32:52 -04:00
Robin Ward
1e5d451cb1 Merge branch 'master' into beta 2017-08-31 14:54:57 -04:00
Neil Lalonde
b124ada186 Version bump 2017-08-17 15:59:39 -04:00
Neil Lalonde
e81aa395c4 Version bump 2017-08-16 12:49:36 -04:00
David Taylor
76edd571bd SECURITY: Do not show latest/top topics on 404 for login_required sites 2017-08-13 23:44:33 +05:30
Neil Lalonde
2b216c6cef Version bump 2017-08-01 14:32:48 -04:00
Guo Xiang Tan
cf05ad54a9 FIX: Exclude www in topic map links.
https://meta.discourse.org/t/topic-popular-links-panel-domain-extraction-doesnt-handle-country-tlds/60156/38?u=tgxworld
2017-07-26 10:00:39 +09:00
Guo Xiang Tan
0bf928ad84 Revert "UX: Don't try to figure out root domain."
This reverts commit 7690cc6ca5.
2017-07-26 10:00:39 +09:00
Robin Ward
0df14fa2b5 FIX: Allow discourse app to link directly to wizard 2017-07-10 14:35:35 -04:00
Neil Lalonde
6e80ace6de Version bump 2017-07-10 11:45:58 -04:00
Robin Ward
df508e8027 SECURITY: Remove disposable invite feature 2017-07-07 20:46:43 -04:00
Neil Lalonde
3989a0d9f9 Version bump 2017-07-05 12:24:00 -04:00
Arpit Jalan
1ec4a9539e FIX: include canonical meta tag on category pages 2017-07-03 14:43:02 +05:30
Robin Ward
9798e1e588 FIX: Topic Entrance wasn't showing up on some suggested topics 2017-06-29 12:54:21 -04:00
Régis Hanol
8a755831bf FIX: image orientation wasn't properly working 2017-06-23 10:19:21 +02:00
Robin Ward
40cda06e3e FIX: Always allow the host the forum is hosted on 2017-06-13 10:45:09 -04:00
Neil Lalonde
a7c4969c79 Version bump 2017-06-12 12:48:54 -04:00
Guo Xiang Tan
11dee669b1 FIX: Bot mentioned check should be case insensitive. 2017-06-08 19:05:38 +09:00
Guo Xiang Tan
7fda914d1a Move the constant as well. 2017-06-06 15:40:00 +09:00
Guo Xiang Tan
c7efbcfb80 FIX: Ensure that we cancel any timeout jobs when terminating a track. 2017-06-05 16:28:46 +09:00
Guo Xiang Tan
85aa569eea FIX: Bot should only respond to regular posts. 2017-06-05 15:27:26 +09:00
Régis Hanol
2fe8d9ca00 FIX: PNG-to-JPEG conversion should only be done to images with at least 1 megapixels 2017-06-03 21:52:01 +02:00
Régis Hanol
56b91a0175 FIX: automatic PNG-to-JPEG conversion should use a default white background 2017-06-03 21:51:56 +02:00
Guo Xiang Tan
c047611421 Revert "Skip validations when Discobot creates new posts."
This reverts commit ca7e906774.

Post validations are already skipped for admin users. Skipping
validations cause polls to not work.
2017-06-03 07:21:24 +09:00
Robin Ward
8b989b71cc FIX: Don't run in testing mode 2017-06-02 13:07:50 -04:00
Robin Ward
0eaa6defa0 SECURITY: Vunerability in mail gem
(see https://github.com/mikel/mail/pull/1097)
2017-06-01 14:52:24 -04:00
Guo Xiang Tan
d5c4215f82 Revert "Load posts in batches while indexing problem posts."
This reverts commit ce57ff9fcf.

Limit is ignored with `find_each`.
2017-06-01 11:35:21 +09:00
Neil Lalonde
7ae8733e93 Version bump 2017-05-31 16:42:19 -04:00
Neil Lalonde
be8723ab9c Version bump 2017-05-22 13:50:00 -04:00
Robin Ward
518bd00135 SECURITY: Validate the entity when downloading a CSV 2017-05-19 16:01:13 -04:00
Neil Lalonde
f823aaadef Version bump 2017-05-15 11:48:08 -04:00
Guo Xiang Tan
a32b7bd37a Disable failing JS tests first. 2017-05-05 10:08:13 +08:00
Robin Ward
a117ae25a8 FIX: Regression when clicking on post date 2017-05-04 13:51:15 -04:00
Guo Xiang Tan
63ae563b5a FIX: Show share popup only for valid buttons. 2017-05-04 11:20:16 -04:00
Guo Xiang Tan
80c93e23ac SECURITY: XSS issue in share popup if invalid link is passed in. 2017-05-04 11:07:36 -04:00
Neil Lalonde
8b8dee956c Version bump 2017-04-27 14:06:11 -04:00
Neil Lalonde
6bb2dd0584 Version bump 2017-04-10 14:32:26 -04:00
Sam Saffron
a3fbb64a0e SECURITY: prefer render plain/html to render text where possible 2017-04-10 08:03:32 -04:00
Sam Saffron
1b5d7c1659 SECURITY: do not send push notifications to suspended users 2017-04-05 08:29:23 -04:00
Neil Lalonde
1a7b576ec6 Version bump 2017-03-28 11:34:23 -04:00
Robin Ward
1d78baee0d Update facebook login gem 2017-03-27 17:23:02 -04:00
Guo Xiang Tan
709805ae02 SECURITY: CSRF vulnerabilities in Admin::BackupsController. 2017-03-23 10:52:40 +08:00
Neil Lalonde
919f33f377 Version bump 2017-03-20 12:07:13 -04:00
Guo Xiang Tan
21c4c1d9d4 SECURITY: Disallow symlinks when restoring uploads. 2017-03-17 14:30:29 +08:00
Robin Ward
5cbad06de4 SECURITY: Don't use backticks for exporting your archive 2017-03-16 16:27:30 -04:00
Sam
a9207d87b9 SECURITY: always allow staff to resend activation mails 2017-03-13 10:33:03 -04:00
Guo Xiang Tan
cb731dbecd FIX: Store user's id instead for sending activation email.
* Email and username are both allowed to be used for logging in.
  Therefore, it is easier to just store the user's id rather than
  to store the username and email in the session.
2017-03-13 20:59:14 +08:00
Guo Xiang Tan
a91d0f39bc SECURITY: Only allow users to resend activation email with a valid session.
* Improve error when an active user tries to request for an activation email.
2017-03-13 20:59:08 +08:00
Neil Lalonde
7d40cd92f8 Version bump 2017-03-08 12:23:21 -05:00
Robin Ward
0a35966465 Revert "SECURITY: Ensure oAuth authenticated email is the same as created user's email."
This reverts commit 1060239e2d.
2017-02-27 13:36:51 -05:00
Guo Xiang Tan
ee0c293c26 FIX: Mobile topic timeline broken on Chrome 56.
* See https://developers.google.com/web/updates/2017/01/scrolling-intervention.
  From Chrome 56 onwards, `touchstart` event listeners are treated as passive
  by default which does not call `preventDefault` resulting in the page
  scrolling when topic timeline handle is being dragged.
2017-02-27 13:23:41 +08:00
Guo Xiang Tan
a87f9e627b SECURITY: Ensure oAuth authenticated email is the same as created user's email. 2017-02-24 15:44:17 +08:00
Guo Xiang Tan
52022fe58d Revert "SECURITY: Ensure that user has been authenticated."
This reverts commit 86b0f589c9.
2017-02-24 15:44:10 +08:00
Guo Xiang Tan
86b0f589c9 SECURITY: Ensure that user has been authenticated. 2017-02-24 11:46:03 +08:00
Sam
1893b76977 SECURITY: inactive/suspended accounts should be banned from api
Also fixes edge cases around users presenting multiple credentials
2017-02-17 11:04:04 -05:00
Neil Lalonde
2f536423de Version bump 2017-02-14 17:39:20 -05:00
Neil Lalonde
546d21116f Version bump to v1.8.0.beta6 2017-02-14 17:39:11 -05:00
Neil Lalonde
4f00241488 Version bump 2017-02-13 16:46:20 -05:00
Sam
1e7589f758 new: server plugin outlet for indexable robots.txt 2017-02-13 14:06:14 -05:00
Sam
98811332d8 SECURITY: correctly validate input when admin searches for screened ips 2017-02-06 16:11:35 -05:00
Sam
d28bf7bddd UX: less restrictive selector to allow for plugin outlets
Currently plugin outlets in LIs will generate a wrapping SPAN,
this makes an allowence in core for nave extenstions (like solved does)
2017-02-02 12:18:37 -05:00
Neil Lalonde
9fa29ca898 Version bump 2017-01-26 17:38:26 -05:00
Neil Lalonde
29df37d430 Version bump 2017-01-26 13:41:05 -05:00
Robin Ward
738ee9620e SECURITY: Prevent large onebox downloads, better timeout support 2017-01-25 14:58:11 -05:00
Guo Xiang Tan
f67f425b79 Fix broken emojis. 2017-01-24 16:19:34 +08:00
Régis Hanol
e14412a676 FIX: log backups download/destroy staff action
FIX: clean up junk left by the specs
RENAME: 'backup_operation' to 'backup_create' to match other backup log types
2017-01-16 19:57:42 +01:00
Robin Ward
a150616b79 Version bump to v1.8.0.beta2 2017-01-13 11:43:24 -05:00
Guo Xiang Tan
0c2b7f242f Remove lines that are no longer valid. 2017-01-13 11:43:24 -05:00
Matt Palmer
3591fe8aef FEATURE: Better error message when incoming e-mail is missing a Date: header 2017-01-13 11:43:24 -05:00
Arpit Jalan
4fa3fa2a79 Update Translations 2017-01-13 11:43:24 -05:00
Guo Xiang Tan
b2b3f3b95d UX: Truncate topic link title/URL on desktop to prevent overflow. 2017-01-13 11:43:24 -05:00
Guo Xiang Tan
f919b59c8b Fix syntax error. 2017-01-13 11:43:24 -05:00
Guo Xiang Tan
070296f9d1 Oops. 2017-01-13 11:43:24 -05:00
Guo Xiang Tan
6821353360 Make mention bot assign reviewers for collaborators as well. 2017-01-13 11:43:24 -05:00
Guo Xiang Tan
186ca3d106 FEATURE: Log admin action when readonly mode is changed. 2017-01-13 11:43:24 -05:00
Jeff Atwood
c5d91cb5d5 FIX: add noopener to website field in user profile 2017-01-13 11:43:24 -05:00
Régis Hanol
e0c009557d FEATURE: new 'max_image_megapixels' site setting 2017-01-13 11:43:24 -05:00
Régis Hanol
b3f8402849 bump onebox 2017-01-13 11:43:24 -05:00
Jay Pfaffman
f746e39fbe use .presence rather than DIY checking 2017-01-13 11:43:24 -05:00
Jay Pfaffman
62110bddd8 bbpress: Use nicename if display_name is missing 2017-01-13 11:43:24 -05:00
Neil Lalonde
a371f223c2 more specs for staff action logging 2017-01-13 11:43:24 -05:00
Robin Ward
392c769b37 Let's not notify for trust levels on Staff, either 2017-01-13 11:43:24 -05:00
Arpit Jalan
b9ec4f6efb FIX: only allow CSV file to be uploaded for bulk invite 2017-01-13 11:43:24 -05:00
Régis Hanol
a3c6209cca remove 'already initialized constant' warning 2017-01-13 11:43:24 -05:00
Guo Xiang Tan
94b0bc4228 Use any orientation for web app manifest. 2017-01-13 11:43:24 -05:00
Guo Xiang Tan
c515b505f1 FIX: Perform emoji unescape for topic titles in quotes. 2017-01-13 11:43:24 -05:00
Guo Xiang Tan
71f583c9eb Use a different Redis key when PG failover sets site to readonly mode. 2017-01-13 11:43:24 -05:00
Jeff Atwood
b5a869eb32 switch from "API Requests" to "Pageviews" 2017-01-13 11:43:24 -05:00
Neil Lalonde
7e49c957ad Don't display email addresses in staff action logs for revoked email 2017-01-13 11:43:24 -05:00
Neil Lalonde
28762f3446 Don't show email of deleted users in staff action logs 2017-01-13 11:43:24 -05:00
Neil Lalonde
f1afbe4e5f Staff action logs explain when system is deleting a post because author marked it to be deleted 2017-01-13 11:43:24 -05:00
Neil Lalonde
8236658581 Add more info in staff action logs for blocking a user, and add logging for lock trust level, activate, and deactive user 2017-01-13 11:43:24 -05:00
Jeff Atwood
54db7ea0be SECURITY: disallow csv as default upload file type 2017-01-13 11:43:24 -05:00
Robin Ward
44189faab2 Don't give notifications to admins for trust level notifications 2017-01-13 11:43:24 -05:00
Jeff Atwood
a0db82bed4 update mobile android screenshot for 1.7 2017-01-13 11:43:24 -05:00
Arpit Jalan
c55d6deef6 use table prefix in bbpress import script 2017-01-13 11:43:24 -05:00
Ola Christensson
21431c9107 Display tabs with smaller widths for code blocks
The default browser behavior is a tab width of 8 characters. This changes the width to 4 characters.
2017-01-13 11:43:24 -05:00
Robin Ward
8da8937e4a Plugins can register providers for global settings 2017-01-13 11:43:24 -05:00
Régis Hanol
3b08cf6955 handle emails with localized headers 😠 2017-01-13 11:43:24 -05:00
Robin Ward
ec4752909e Revert "Experimental feature to load gemfiles from plugins"
This reverts commit 64652f98ab.
2017-01-13 11:43:24 -05:00
Robin Ward
5a92aca19d FIX: Don't allow formatting in titles when quoting other topics 2017-01-13 11:43:24 -05:00
Neil Lalonde
baf5d0f8a3 FIX: an image can be shown twice in summary emails 2017-01-13 11:43:24 -05:00
Robin Ward
394c1cfda0 Experimental feature to load gemfiles from plugins 2017-01-13 11:43:24 -05:00
Guo Xiang Tan
c9ea04ffd2 oops fix specs. 2017-01-13 11:43:24 -05:00
Guo Xiang Tan
8983ad20de FIX: Add validation to disallow censored words in topic title. 2017-01-13 11:43:24 -05:00
Guo Xiang Tan
b26e18025e UX: Display large numbers with delimiters. 2017-01-13 11:43:24 -05:00
Guo Xiang Tan
3ffa889aa8 Make eslint happy. 2017-01-13 11:43:24 -05:00
Guo Xiang Tan
469eaa23a8 UX: Observe changes to plugin to hide/show plugin admin link without refresh. 2017-01-13 11:43:24 -05:00
Guo Xiang Tan
8ae6e49ad2 FIX: Login modal on mobile does not submit on enter. 2017-01-13 11:43:24 -05:00
Guo Xiang Tan
0485ea918b Revert "Run Travis against 2.4.0 as well."
This reverts commit 0000de9501.
2017-01-13 11:43:24 -05:00
Guo Xiang Tan
748d1590c1 FIX: Respect site setting to hide username in mailing list summary. 2017-01-13 11:43:24 -05:00
Guo Xiang Tan
e910f7f3fe Make eslint happy. 2017-01-13 11:43:24 -05:00
Guo Xiang Tan
d29f363528 FIX: Can't add categories when creating a new web hook. 2017-01-13 11:43:24 -05:00
Guo Xiang Tan
13adf8e4df Fix typo. 2017-01-13 11:43:24 -05:00
Guo Xiang Tan
7085f0bee6 Run Travis against 2.4.0 as well. 2017-01-13 11:43:24 -05:00
Miroslav Michalicka
2853b6f109 Fix typos 2017-01-13 11:43:24 -05:00
Miroslav Michalicka
b8ef8890ee Migration script from Drupal 6 2017-01-13 11:43:24 -05:00
Jeff Atwood
8d6bbd7511 add Hacker One page to security.md 2017-01-13 11:43:24 -05:00
Jeff Atwood
e03b7ce445 Update INSTALL-cloud.md 2017-01-13 11:43:24 -05:00
Kurtis Rainbolt-Greene
f15c14775a Allow for a custom hub server 2017-01-13 11:43:24 -05:00
Jeff Atwood
b59a1136a2 Update INSTALL-cloud.md 2017-01-13 11:43:24 -05:00
Alexey Py
813d8c5857 Update copyright year
Update year to 2017
2017-01-13 11:43:24 -05:00
Régis Hanol
16e590563d FIX: don't onebox to IP addresses 2017-01-12 22:36:25 +01:00
Neil Lalonde
ee17eb98a3 Version bump 2017-01-06 16:11:12 -05:00
Robin Ward
7cb376d6f4 SECURITY: Moderators should not be able to access customizations 2017-01-06 14:43:12 -05:00
Neil Lalonde
5a31a7b3d3 Version bump 2016-12-28 18:15:26 -05:00
Guo Xiang Tan
969276b57f SECURITY: Users can only bookmark posts which they can see. 2016-12-21 12:16:13 +08:00
Sam
01bbd1f316 SECURITY: prevent reuse of password reset 2016-12-19 18:01:06 +11:00
Sam
f79dbbe4ff SECURITY: update onebox gem 2016-12-19 13:20:12 +11:00
Sam
bc8fa638c1 SECURITY: protect upload params, only allow very strict filenames 2016-12-19 10:18:03 +11:00
Sam
4ba28a08a3 SECURITY: fix reflected XSS with safe_mode param
(only applies to beta and master)
2016-12-19 10:12:34 +11:00
Sam
e23af6eea4 SECURITY: don't grant same privileges to user_api and api access
User API is no longer gets bypasses that standard API gets.
Only bypasses are CSRF and XHR requirements.
2016-12-16 12:06:19 +11:00
Neil Lalonde
40fc83843b Version bump 2016-12-14 14:58:19 -05:00
Arpit Jalan
ec974b1235 SECURITY: escape advanced search term 2016-12-08 11:02:10 +01:00
Neil Lalonde
80535b09f1 Version bump 2016-12-07 17:50:59 -05:00
Neil Lalonde
651886be58 Version bump 2016-11-28 16:07:21 -05:00
Robin Ward
b4b8e0dd12 Backport get-owner API so plugins can use it safely 2016-11-21 11:15:59 -05:00
Neil Lalonde
ad7dbae939 Version bump 2016-11-02 13:48:12 -04:00
Régis Hanol
e6047f2b65 FIX: uploading custom avatar was always hidden 2016-10-20 23:01:11 +02:00
Neil Lalonde
befac23d6f Version bump 2016-10-20 10:50:10 -04:00
Guo Xiang Tan
d7b31e291b Merge pull request #4505 from Dax74/patch-2
Create server.it.yml for details plugin
2016-10-17 10:17:40 +08:00
Dax74
97ddc82356 Create server.it.yml for details plugin
Italian translation
2016-10-16 18:24:28 +02:00
Neil Lalonde
ccbfacbfb0 Version bump 2016-09-22 12:52:51 -04:00
cpradio
935a50cb3c Escape the hyphen 2016-09-19 09:04:14 +08:00
cpradio
35e1ac9db1 FIX: Backup validation wasn't escaping hyphens 2016-09-19 09:04:03 +08:00
Guo Xiang Tan
8160483872 SECURITY: Add filename validation for backup uploads. 2016-09-16 12:52:23 +08:00
Guo Xiang Tan
a174c68f6c SECUIRTY: Escape input made to system calls. 2016-09-16 12:52:15 +08:00
Neil Lalonde
3ed844da92 Version bump 2016-09-13 12:24:15 -04:00
Neil Lalonde
5ca5b362fe Version bump 2016-08-25 12:01:21 -04:00
Neil Lalonde
1b2a6c6cb6 Version bump 2016-08-12 11:49:30 -04:00
Robin Ward
62bff49f14 FIX: Travis failure 2016-08-11 13:49:07 +08:00
Guo Xiang Tan
9e139f0278 SECURITY: Escape HTML in filename. 2016-08-11 13:48:50 +08:00
Guo Xiang Tan
d88481ec52 SECURITY: Escape image title in lightbox. 2016-08-11 11:19:19 +08:00
Régis Hanol
b3cc71032e FIX: wasn't able to update category's settings 2016-08-09 23:58:15 +02:00
Sam
6ac351dc7e SECURITY: do cookie auth rate limiting earlier 2016-08-09 10:04:24 +10:00
Guo Xiang Tan
c5f0a2db2e Revert "UX: Centering Badge notification styles on mobile."
This reverts commit fce902ab1e.
2016-08-08 09:37:42 +08:00
Neil Lalonde
7bffcdee75 Version bump 2016-08-05 15:18:35 -04:00
Robin Ward
20127b40e3 SECURITY: XSS issue on Admin users list 2016-08-05 12:05:49 -04:00
Robin Ward
309c9c3902 SECURITY: Avoid mass assignment on user create 2016-08-05 12:05:44 -04:00
Robin Ward
0fb314023c FIX: Regression with escaping on badge page 2016-07-28 15:57:57 -04:00
Robin Ward
afd0fcb99c SECURITY: Make sure uploaded_urls have corresponding upload records 2016-07-28 14:40:22 -04:00
Robin Ward
f496a7d54b SECURITY: Cross-Site Scripting in Category and Group Settings 2016-07-28 14:40:11 -04:00
Robin Ward
ae6c7c6c5e SECURITY: SQL Injection in Admin List Active Users 2016-07-28 14:40:04 -04:00
Robin Ward
0c6efc0307 SECURITY: XSS in "Account Suspended" Messages and Badge Descriptions 2016-07-28 14:39:56 -04:00
Sam
6284485970 SECURITY: limit route access when using external avatars 2016-07-28 09:04:07 +10:00
Sam
f14358e751 SECURITY: disable user entered badge SQL by default
- Hidden site settings now must be change via rails console
2016-07-28 09:03:46 +10:00
Neil Lalonde
aa6d9e74d3 Version bump 2016-07-26 11:50:04 -04:00
Guo Xiang Tan
f4917dffbf SECURITY: Possible SQL injection. 2016-07-19 13:02:41 +08:00
Neil Lalonde
94e937141b Version bump 2016-07-11 11:27:40 -04:00
Régis Hanol
b009ebe2a4 Version bump 2016-06-30 18:05:12 +02:00
Neil Lalonde
b1fb1831df Version bump 2016-06-21 11:45:55 -04:00
Sam
97acd3f93b SECURITY: update logster 2016-06-20 12:13:11 +10:00
Sam
a874890ab3 SECURITY: restrict constantize classes in search controller 2016-06-17 13:48:46 +10:00
Robin Ward
01e9777f54 SECURITY: Unapproved, active users should not receive emails 2016-06-16 13:09:22 -04:00
Neil Lalonde
fba419ada0 Version bump 2016-06-10 13:43:42 -04:00
Neil Lalonde
45c8251e48 Version bump 2016-05-27 11:07:20 -04:00
Neil Lalonde
9558393e7b Version bump 2016-05-26 11:51:58 -04:00
Neil Lalonde
841f177db8 Version bump 2016-05-19 12:26:25 -04:00
Sam
4c8715ed2e SECURITY: update rack-mini-profiler 2016-05-18 18:33:29 +10:00
Guo Xiang Tan
adf8a5c9a3
FIX: Ensure unique fields in TopicList.preloaded_custom_fields. 2016-05-18 13:09:27 +08:00
Régis Hanol
5bd72597d5 SECURITY: 2 XSSs in post gutter and local oneboxes 2016-05-14 00:08:43 +02:00
Robin Ward
4fc1918e0f
FIX: OFFSET wasn't being applied correctly 2016-05-11 14:00:31 -04:00
Neil Lalonde
380891875e Version bump 2016-05-10 10:52:27 -04:00
Neil Lalonde
8556622e2b Version bump 2016-05-04 14:31:36 -04:00
Neil Lalonde
2ec92021e1 Version bump 2016-04-20 19:19:37 -04:00
Neil Lalonde
892c90f93c Version bump to v1.6.0.beta2 2016-04-20 19:19:12 -04:00
Neil Lalonde
d61fcbbb9d Version bump 2016-03-31 17:55:47 -04:00
Neil Lalonde
1b62a7e2a1 Version bump 2016-03-29 15:13:55 -04:00
Régis Hanol
6de95d9783 SECURITY: only add elided part of email in PM 2016-03-17 23:11:31 +01:00
Neil Lalonde
3ecb456db2 Version bump 2016-03-17 13:16:57 -04:00
Neil Lalonde
d330f9b62f Version bump 2016-03-17 12:19:53 -04:00
Arpit Jalan
0955d2ab6c SECURITY: strip HTML tags in topic title in email digest 2016-03-08 21:26:42 +05:30
Neil Lalonde
cf676ea6b2 Version bump 2016-03-07 10:37:18 -05:00
Neil Lalonde
db9bc24742 Version bump 2016-02-22 11:30:25 -05:00
Robin Ward
35d6e64c3a Backport PluginAPI to beta branch 2016-02-17 12:17:33 -05:00
Régis Hanol
2ff275e4f4 fix eslint 2016-02-05 16:11:02 +01:00
Régis Hanol
9a80510376 we still need md5 2016-02-05 16:01:51 +01:00
Sam Saffron
2164c082d4 SECURITY: hoist blocks using guids, not md5 hashes 2016-02-05 16:01:44 +01:00
Neil Lalonde
f13af3c13f Version bump 2016-02-04 13:44:50 -05:00
Sam Saffron
f1c7009166 SECURITY: topic titles can show up in user page unescaped when streamed in 2016-02-01 20:55:02 +11:00
Régis Hanol
7e25c9f213 SECURITY: fix XSS in lazyYT plugin 2016-01-30 12:40:24 +01:00
Sam Saffron
35f153c46b SECURITY: user summary could show topic links you have no permissions to 2016-01-28 11:13:29 +11:00
Neil Lalonde
f42d1c8f63 Version bump 2016-01-25 13:41:18 -05:00
Robin Ward
56b3e88786 FIX: Rebake all HTML due to handlebars upgrade 2016-01-18 12:48:05 -05:00
Robin Ward
f72f5d9315 FIX: Precompiler should apply get magic too 2016-01-15 15:15:10 -05:00
Robin Ward
1d771d3d56 SECURITY: Upgrade Ember to fix CVE-2015-7565. Also upgrade Handlebars 2016-01-15 15:15:02 -05:00
Robin Ward
ddc5e52f7c Revert "SECURITY: Upgrade Ember to fix CVE-2015-7565"
This reverts commit 211521df4f.
2016-01-15 11:39:45 -05:00
Robin Ward
2e369a143c SECURITY: Upgrade Ember to fix CVE-2015-7565 2016-01-15 11:31:32 -05:00
Neil Lalonde
b174ad7a52 Version bump 2016-01-08 15:57:13 -05:00
Régis Hanol
477ad15038 SECURITY: ensure we never accept fake images 2015-12-21 16:12:18 +01:00
Neil Lalonde
0a4ae61b2c Version bump 2015-12-18 11:09:25 -05:00
Neil Lalonde
5d87b917d8 Version bump 2015-11-25 17:19:49 -05:00
Robin Ward
d05b7c6329 SECURITY: Backported XSS fixes from Handlebars 2015-11-24 16:16:26 -05:00
Robin Ward
717e72150b SECURITY: XSS Protection on Queued Posts 2015-11-20 14:27:52 -05:00
Robin Ward
e37abbd397 FIX: Missing fallback logic 2015-11-19 12:39:59 -05:00
Neil Lalonde
50da33eee1 Version bump 2015-11-17 11:40:04 -05:00
Neil Lalonde
714ea51990 Version bump 2015-11-04 13:26:53 -05:00
Neil Lalonde
548c18dd51 Version bump 2015-10-19 17:34:56 -04:00
Robin Ward
1db036d465 SECURITY: Unread post notifications should respect whispers 2015-10-19 16:32:37 -04:00
Robin Ward
35a3df35ea SECURITY: Moderators should not see API keys 2015-10-14 15:46:33 -04:00
Sam
42b9823bc2 SECURITY: XSS in search results term
Thanks to Jerbi Nessim
2015-10-07 10:53:22 +11:00
Régis Hanol
8ba7fdce90 Merge pull request #3832 from Martyn96/patch-1
Fix typo in restore & rollback confirm dialog
2015-10-05 15:46:31 +11:00
Martijn Rondeel
cf4a452dd8 Fix typo in restore & rollback confirm dialog 2015-10-03 21:02:19 +02:00
Neil Lalonde
a33dc7403f Version bump 2015-10-02 11:11:33 -04:00
Sam
2366fe4bab FIX: don't use Safari hack on Windows Phone 2015-09-28 17:21:20 +10:00
Robin Ward
37dd456a56 FIX: max_topics_per_day was not working 2015-09-25 12:42:29 -04:00
Robin Ward
764b90d535 FIX: Allow mods/admins to search whispers 2015-09-25 12:41:52 -04:00
Robin Ward
6092313eba FIX: Replies to whispers *must* be whispers 2015-09-25 12:41:52 -04:00
Régis Hanol
d57c84ec00 FIX: replaceMarkdown should be smart about current caret position 2015-09-25 12:41:52 -04:00
Sam
0323ef9943 FIX: disable cloaked view while running ios positioning hack 2015-09-25 12:41:52 -04:00
Sam
dc95cd75b1 FIX: whispers should not be revealed in reply to, or reply expansion
FEATURE: mark whisper as experimental
FIX: badges should never apply to whispers
2015-09-25 12:41:52 -04:00
Jeff Atwood
d89b792375 tweaks to readme 2015-09-25 12:41:51 -04:00
Jeff Atwood
af6769b792 update readme images for 1.4 2015-09-25 12:41:51 -04:00
Jeff Atwood
63f4dce499 minor install guide tweaks 2015-09-25 12:41:51 -04:00
Jeff Atwood
ef9761e032 minor install guide tweaks 2015-09-25 12:41:51 -04:00
Sam
a777d81d6b FIX: when replying to a expanded reply, correctly attribute author 2015-09-25 12:41:51 -04:00
Jeff Atwood
0baebd1659 FIX: 1.4 welcome PM images needed update 2015-09-25 12:41:51 -04:00
Robin Ward
fca0bad4e1 FIX: Category Logo preview should not repeat 2015-09-25 12:41:51 -04:00
Régis Hanol
f378a6c18f FIX: only disable the composer grip when the device is touch-only 2015-09-25 12:41:51 -04:00
Régis Hanol
5c07ae7607 FIX: pikaday wasn't working when using the mouse with a touch-enabled monitor 2015-09-25 12:41:51 -04:00
Jeff Atwood
881df0e14f emphasize reading the admin quick start guide 2015-09-25 12:41:51 -04:00
Jeff Atwood
ff0fe6eb3a simplify install guide a tiny bit 2015-09-25 12:41:50 -04:00
Jeff Atwood
26afa00520 update install guide for Discourse 1.4 2015-09-25 12:41:50 -04:00
Sam
1bfa6f6c9d Revert "FIX: properly filter badges when they're on a whisper"
This reverts commit e1437e6670.
2015-09-25 10:21:34 +10:00
Régis Hanol
e1437e6670 FIX: properly filter badges when they're on a whisper 2015-09-25 00:39:58 +02:00
Régis Hanol
13aca1cceb FIX: notifications & messages were missing from user profile 2015-09-24 19:16:29 +02:00
Robin Ward
4818ba5960 FIX: Double load sometimes on topic lists 2015-09-23 16:42:07 -04:00
Neil Lalonde
3b754956e7 Version bump 2015-09-22 15:16:27 -04:00
Neil Lalonde
ad8f2cbed1 Version bump 2015-09-16 11:33:24 -04:00
Neil Lalonde
5388d4f92a Version bump 2015-09-09 11:45:25 -04:00
Neil Lalonde
53435cf05f Version bump to v1.4.0.beta11 2015-09-09 11:40:52 -04:00
Sam
0893e412d7 SECURITY: fix possible XSS expanding quotes 2015-09-08 15:26:12 +10:00
Sam
40f449c002 FIX: if an enum is Fixnum do not allow strings to live in it 2015-08-26 14:20:03 +02:00
Sam
1e411acbaf PATCH: in some cases this is being turned to a string workaround for now 2015-08-26 14:19:54 +02:00
Neil Lalonde
7d9c21143f Version bump 2015-08-25 15:06:14 -04:00
Neil Lalonde
fbd5325031 Version bump 2015-08-13 10:41:37 -04:00
Neil Lalonde
3ba68857bd Version bump 2015-08-06 15:33:06 -04:00
Neil Lalonde
eaa5304036 Version bump 2015-07-30 15:46:35 -04:00
Robin Ward
61c7c55ddc SECURITY: Make sure export CSV is generated via a POST 2015-07-24 12:39:12 -04:00
Neil Lalonde
ced0e85ddb Version bump 2015-07-17 21:31:26 -04:00
Neil Lalonde
97a5a8ae28 Version bump 2015-07-17 11:26:21 -04:00
Sam
e61a6238f2 SECURITY: Remove email validation check bypass
- Increase size of email column to varchar(513)
 - Give error message on signup when email is too large

Overall impact: Low, allows signups from blocked domains. Main risk is increased spam.
2015-07-14 09:55:41 +10:00
Neil Lalonde
a4ae8570ea Version bump 2015-07-01 17:12:23 -04:00
Robin Ward
8a20215673 FIX: Embedding posts was broken 2015-06-26 11:46:30 -04:00
Neil Lalonde
67203ccb64 Version bump 2015-06-19 11:37:29 -04:00
Neil Lalonde
ac079e6240 Version bump 2015-06-11 16:07:26 -04:00
Sam Saffron
c761bf4b90 SECURITY: expire all existing email tokens on password reset 2015-06-05 14:15:48 -04:00
Sam Saffron
0cca90b889 SECURITY: expire all existing sessions if user changes passwords 2015-06-05 13:19:29 -04:00
Robin Ward
772e96e52b Never enqueue posts from staff 2015-06-05 13:19:24 -04:00
Neil Lalonde
74fe4b7cb7 Version bump 2015-06-03 16:57:19 -04:00
Neil Lalonde
c5acf64f54 Version bump 2015-06-01 17:02:34 -04:00
Neil Lalonde
e10e37ec62 Version bump 2015-06-01 15:38:38 -04:00
Neil Lalonde
63f0bd0495 Version bump 2015-05-26 11:45:35 -04:00
Neil Lalonde
cc4bfa7b45 Version bump 2015-05-12 17:52:57 -04:00
Neil Lalonde
121a8ba6dc Version bump to v1.3.0.beta8 2015-05-11 18:53:59 -04:00
Sam
12c6ff22d8 remove s3 deprecation warning, we will continue to support it 2015-05-12 08:32:41 +10:00
riking
c6143ba990 SECURITY: XSS in poll errors dialog 2015-05-09 18:11:20 +10:00
Neil Lalonde
e448cbf6ad Version bump 2015-05-06 13:41:57 -04:00
Neil Lalonde
bcccec1ea6 Version bump 2015-04-22 11:11:48 -04:00
Sam
6e1842d2b3 SECURITY: log off all existing sessions when resetting password 2015-04-15 09:00:55 +10:00
Neil Lalonde
8c3d3060d1 Version bump 2015-04-13 15:00:51 -04:00
Neil Lalonde
c7040e46b9 Version bump 2015-03-24 14:18:38 -04:00
Neil Lalonde
bebc107082 Version bump 2015-03-12 17:20:20 -04:00
Robin Ward
6a91151017 FIX: 6to5 was renamed to Babel
I can't believe they just pulled the old gem and broke people deploying
our site to production. I get it, your name changed, but don't break
other people's apps with no deprecations.
2015-03-05 13:43:35 -05:00
Neil Lalonde
9e96152788 Version bump 2015-03-02 18:31:18 -05:00
Neil Lalonde
7e78139563 Version bump 2015-02-19 16:27:55 -05:00
Neil Lalonde
bd8b403780 Version bump 2015-02-16 16:09:21 -05:00
Neil Lalonde
caa9a324b0 Version bump 2015-02-12 18:31:36 -05:00
Neil Lalonde
3739684164 Version bump 2015-02-12 16:34:53 -05:00
Neil Lalonde
adc1a2e9a5 Version bump 2015-02-03 14:18:35 -05:00
Neil Lalonde
872aa6216b Version bump 2015-01-14 14:27:58 -05:00
Neil Lalonde
c97833b1fc Version bump 2014-12-12 14:34:42 -05:00
Neil Lalonde
c0b128d547 Version bump 2014-11-27 16:48:45 -05:00
Neil Lalonde
ee61fb5274 Version bump 2014-11-18 16:10:13 -05:00
Neil Lalonde
c87673c651 Merge branch 'master' into beta 2014-11-06 15:53:53 -05:00
Neil Lalonde
d2fd8e1947 Version bump 2014-10-30 17:31:32 -04:00
Neil Lalonde
f058bfa376 Version bump 2014-10-23 11:47:25 -04:00
Neil Lalonde
ec102c550d Version bump 2014-10-16 15:08:23 -04:00
Neil Lalonde
340c2e4ff6 Version bump to v1.1.0.beta6b 2014-10-16 15:07:31 -04:00
Neil Lalonde
f07b00f1e9 Version bump 2014-10-08 16:51:07 -04:00
Neil Lalonde
b813e692b2 Version bump 2014-10-03 10:52:14 -04:00
Neil Lalonde
f23bc46d43 Version bump 2014-09-23 13:44:18 -04:00
Neil Lalonde
c3e1cbfe90 Merge master 2014-09-10 12:53:31 -04:00
Neil Lalonde
fd81422202 Version bump to v1.1.0.beta1 2014-09-04 12:47:04 -04:00

Diff Content Not Available