<feed xmlns='http://www.w3.org/2005/Atom'>
<title>delta/gitlab/gitlab-ce.git/lib/banzai, branch docs/api-single-codebase</title>
<subtitle>gitlab.com: gitlab-org/gitlab-ce.git
</subtitle>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/gitlab/gitlab-ce.git/'/>
<entry>
<title>Merge branch 'master' of gitlab.com:gitlab-org/gitlab-ce</title>
<updated>2019-07-03T09:55:56+00:00</updated>
<author>
<name>Marin Jankovski</name>
<email>maxlazio@gmail.com</email>
</author>
<published>2019-07-03T09:55:56+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/gitlab/gitlab-ce.git/commit/?id=c20c9e2940b0f94547246d05b7b526f0b1571027'/>
<id>c20c9e2940b0f94547246d05b7b526f0b1571027</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Merge branch 'security-DOS_issue_comments_banzai' into 'master'</title>
<updated>2019-07-02T06:22:45+00:00</updated>
<author>
<name>Marin Jankovski</name>
<email>marin@gitlab.com</email>
</author>
<published>2019-07-02T06:22:45+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/gitlab/gitlab-ce.git/commit/?id=23dedd53a73a01429c0a5c99414548694f1fab0b'/>
<id>23dedd53a73a01429c0a5c99414548694f1fab0b</id>
<content type='text'>
Fix DOS when rendering issue/MR comments

See merge request gitlab/gitlabhq!3152</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Fix DOS when rendering issue/MR comments

See merge request gitlab/gitlabhq!3152</pre>
</div>
</content>
</entry>
<entry>
<title>Fix attachments using the wrong URLs in e-mails</title>
<updated>2019-06-29T05:08:46+00:00</updated>
<author>
<name>Stan Hu</name>
<email>stanhu@gmail.com</email>
</author>
<published>2019-06-29T01:08:35+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/gitlab/gitlab-ce.git/commit/?id=0e341a6e58fc3afca20781cf1f4cbf214b9503ba'/>
<id>0e341a6e58fc3afca20781cf1f4cbf214b9503ba</id>
<content type='text'>
Prior to https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/29889,
only the project context were set for the Markdown renderer. For a note
on an issuable, the group context was set to `nil` because
`note.noteable.try(:group)` attempted to get the issuable's group, which
doesn't exist.

To make group notifications work, now both the project and group context
are set. The context gets passed to `RelativeLinkFilter`, which
previously assumed that it wasn't possible to have both a group and a
project in the Markdown context. However, if a group were defined, it
would take precedence, and the URL rendered for uploads would be
`/group/-/uploads` instead of `/group/project/uploads/`. This led to
404s in e-mails.

However, now that we have both project and group in the context, we
render the Markdown giving priority to the project context if is set.

Closes https://gitlab.com/gitlab-org/gitlab-ce/issues/63910
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Prior to https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/29889,
only the project context were set for the Markdown renderer. For a note
on an issuable, the group context was set to `nil` because
`note.noteable.try(:group)` attempted to get the issuable's group, which
doesn't exist.

To make group notifications work, now both the project and group context
are set. The context gets passed to `RelativeLinkFilter`, which
previously assumed that it wasn't possible to have both a group and a
project in the Markdown context. However, if a group were defined, it
would take precedence, and the URL rendered for uploads would be
`/group/-/uploads` instead of `/group/project/uploads/`. This led to
404s in e-mails.

However, now that we have both project and group in the context, we
render the Markdown giving priority to the project context if is set.

Closes https://gitlab.com/gitlab-org/gitlab-ce/issues/63910
</pre>
</div>
</content>
</entry>
<entry>
<title>Do not rewrite relative links for system notes</title>
<updated>2019-06-20T16:15:59+00:00</updated>
<author>
<name>Mario de la Ossa</name>
<email>mariodelaossa@gmail.com</email>
</author>
<published>2019-06-19T01:28:18+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/gitlab/gitlab-ce.git/commit/?id=35a39c1d3476f0398a2846772e075b9a003bd623'/>
<id>35a39c1d3476f0398a2846772e075b9a003bd623</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Fix DOS when rendering issue/MR comments</title>
<updated>2019-06-14T01:38:21+00:00</updated>
<author>
<name>Mario de la Ossa</name>
<email>mariodelaossa@gmail.com</email>
</author>
<published>2019-06-12T04:14:40+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/gitlab/gitlab-ce.git/commit/?id=ef5fdd3f3c7e46c9c051af094e5472fbe5f0af22'/>
<id>ef5fdd3f3c7e46c9c051af094e5472fbe5f0af22</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Allow emoji in label and milestone references</title>
<updated>2019-06-07T09:05:57+00:00</updated>
<author>
<name>Sean McGivern</name>
<email>sean@gitlab.com</email>
</author>
<published>2019-06-06T16:49:08+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/gitlab/gitlab-ce.git/commit/?id=1617aa27562c6c92c981cadf13f0fb999558e1cc'/>
<id>1617aa27562c6c92c981cadf13f0fb999558e1cc</id>
<content type='text'>
If we put the emoji filter before the reference filters, each emoji will
have a wrapper element that prevents the reference filter from detecting
the presence of the emoji.

As the emoji filter now runs after the reference filters, references
must contain a literal emoji, not the GitLab Flavored Markdown
versions (:100`, for example).

A weird side-effect is that if you have a label with the 100 emoji, and
a label named :100:, then trying to reference the latter will work (link
to the correct label), but will render with the 100 emoji. I'm
comfortable with that edge case, I think.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
If we put the emoji filter before the reference filters, each emoji will
have a wrapper element that prevents the reference filter from detecting
the presence of the emoji.

As the emoji filter now runs after the reference filters, references
must contain a literal emoji, not the GitLab Flavored Markdown
versions (:100`, for example).

A weird side-effect is that if you have a label with the 100 emoji, and
a label named :100:, then trying to reference the latter will work (link
to the correct label), but will render with the 100 emoji. I'm
comfortable with that edge case, I think.
</pre>
</div>
</content>
</entry>
<entry>
<title>Use Redis for CacheMarkDownField on non AR models</title>
<updated>2019-06-05T05:19:59+00:00</updated>
<author>
<name>Patrick Bajao</name>
<email>ebajao@gitlab.com</email>
</author>
<published>2019-06-05T04:59:48+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/gitlab/gitlab-ce.git/commit/?id=2eecfd8f9d111c6518930b818a16daea8263b37f'/>
<id>2eecfd8f9d111c6518930b818a16daea8263b37f</id>
<content type='text'>
This allows using `CacheMarkdownField` for models that are not backed
by ActiveRecord.

When the including class inherits `ActiveRecord::Base` we include
`Gitlab::MarkdownCache::ActiveRecord::Extension`. This will cause the
markdown fields to be rendered and the generated HTML stored in a
`&lt;field&gt;_html` attribute on the record. We also store the version
used for generating the markdown.

All other classes that include this model will include the
`Gitlab::MarkdownCache::Redis::Extension`. This add the `&lt;field&gt;_html`
attributes to that model and will generate the html in them. The
generated HTML will be cached in redis under the key
`markdown_cache:&lt;class&gt;:&lt;id&gt;`. The class this included in must
therefore respond to `id`.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This allows using `CacheMarkdownField` for models that are not backed
by ActiveRecord.

When the including class inherits `ActiveRecord::Base` we include
`Gitlab::MarkdownCache::ActiveRecord::Extension`. This will cause the
markdown fields to be rendered and the generated HTML stored in a
`&lt;field&gt;_html` attribute on the record. We also store the version
used for generating the markdown.

All other classes that include this model will include the
`Gitlab::MarkdownCache::Redis::Extension`. This add the `&lt;field&gt;_html`
attributes to that model and will generate the html in them. The
generated HTML will be cached in redis under the key
`markdown_cache:&lt;class&gt;:&lt;id&gt;`. The class this included in must
therefore respond to `id`.
</pre>
</div>
</content>
</entry>
<entry>
<title>Merge branch 'security-60143-address-xss-issue-master' into 'master'</title>
<updated>2019-06-03T17:01:25+00:00</updated>
<author>
<name>Robert Speicher</name>
<email>rspeicher@gmail.com</email>
</author>
<published>2019-06-03T17:01:25+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/gitlab/gitlab-ce.git/commit/?id=5906fb2e45f352b8fc02f0e98a6148d0c0b2db59'/>
<id>5906fb2e45f352b8fc02f0e98a6148d0c0b2db59</id>
<content type='text'>
Reject slug+uri concat if slug is deemed unsafe

See merge request gitlab/gitlabhq!3108</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Reject slug+uri concat if slug is deemed unsafe

See merge request gitlab/gitlabhq!3108</pre>
</div>
</content>
</entry>
<entry>
<title>Merge branch 'security-fix-project-existence-disclosure-master' into 'master'</title>
<updated>2019-06-03T12:33:57+00:00</updated>
<author>
<name>GitLab Release Tools Bot</name>
<email>robert+release-tools@gitlab.com</email>
</author>
<published>2019-06-03T12:33:57+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/gitlab/gitlab-ce.git/commit/?id=c45c64ce298fab6eca6c54142ab5844a4b2c5c63'/>
<id>c45c64ce298fab6eca6c54142ab5844a4b2c5c63</id>
<content type='text'>
Fix url redaction for issue links

See merge request gitlab/gitlabhq!3091</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Fix url redaction for issue links

See merge request gitlab/gitlabhq!3091</pre>
</div>
</content>
</entry>
<entry>
<title>Reject slug+uri concat if slug is deemed unsafe</title>
<updated>2019-05-24T19:33:24+00:00</updated>
<author>
<name>Kerri Miller</name>
<email>kerrizor@kerrizor.com</email>
</author>
<published>2019-05-20T20:24:22+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/gitlab/gitlab-ce.git/commit/?id=a76fdcb7a30c6244ffb11a2e672e16d1e5b413b2'/>
<id>a76fdcb7a30c6244ffb11a2e672e16d1e5b413b2</id>
<content type='text'>
First reported:
  https://gitlab.com/gitlab-org/gitlab-ce/issues/60143

When the page slug is "javascript:" and we attempt to link to a relative
path (using `.` or `..`) the code will concatenate the slug and the uri.
This MR adds a guard to that concat step that will return `nil` if the
incoming slug matches against any of the "unsafe" slug regexes;
currently this is only for the slug "javascript:" but can be extended if
needed. Manually tested against a non-exhaustive list from OWASP of
common javascript XSS exploits that have to to with mangling the
"javascript:" method, and all are caught by this change or by existing
code that ingests the user-specified slug.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
First reported:
  https://gitlab.com/gitlab-org/gitlab-ce/issues/60143

When the page slug is "javascript:" and we attempt to link to a relative
path (using `.` or `..`) the code will concatenate the slug and the uri.
This MR adds a guard to that concat step that will return `nil` if the
incoming slug matches against any of the "unsafe" slug regexes;
currently this is only for the slug "javascript:" but can be extended if
needed. Manually tested against a non-exhaustive list from OWASP of
common javascript XSS exploits that have to to with mangling the
"javascript:" method, and all are caught by this change or by existing
code that ingests the user-specified slug.
</pre>
</div>
</content>
</entry>
</feed>
